23 Sep, 2011

1 commit

  • Attempt to change McBSP CLKS source while another stream is active is not
    safe after commit d135865 ("OMAP: McBSP: implement functional clock
    switching via clock framework") in 2.6.37.

    CLKS parent clock switching using clock framework have to idle the McBSP
    before switching and then activate it again. This short break can cause a
    DMA transaction error to already running stream which halts and recovers
    only by closing and restarting the stream.

    This goes more fatal after commit e2fa61d ("OMAP3: l3: Introduce
    l3-interconnect error handling driver") in 2.6.39 where l3 driver detects a
    severe timeout error and does BUG_ON().

    Fix this by not changing any configuration in omap_mcbsp_dai_set_dai_sysclk
    if the McBSP is already active. This test should have been here just from
    the beginning anyway.

    Signed-off-by: Jarkko Nikula
    Acked-by: Peter Ujfalusi
    Signed-off-by: Mark Brown
    Cc: stable@kernel.org

    Jarkko Nikula
     

21 Sep, 2011

1 commit

  • Commit 873bd4c (ASoC: Don't set invalid name string to snd_card->driver
    field) broke generation of a driver name for all ASoC cards relying on the
    automatic generation of one. Fix this by using the old default with spaces
    replaced by underscores.

    Signed-off-by: Mark Brown
    Acked-by: Takashi Iwai

    Mark Brown
     

20 Sep, 2011

1 commit


16 Sep, 2011

1 commit


12 Sep, 2011

1 commit


06 Sep, 2011

2 commits


31 Aug, 2011

4 commits


29 Aug, 2011

1 commit


25 Aug, 2011

2 commits


24 Aug, 2011

3 commits

  • Board file support for Ventana is not yet mainlined, and probably won't
    ever be given the move to Device-Tree. Consequently, the Ventana entry
    is being removed from arch/arm/tools/mach-types in the next merge window,
    since it was registered over a year ago.

    This will also remove function machine_is_ventana(), which is used by
    the ASoC Tegra WM8903 machine driver. This will cause compilation
    failures. Drop Ventana support to resolve this.

    Hopefully, in the not-too-distant future, tegra_wm8903.c will be able to
    configure itself from Device-Tree, and hence we'll be able to re-instate
    Ventana support just by creating a .dts file for the board.

    Also note that Aebl support is in a similar boat. However, that board
    isn't scheduled for deprecation for at least another 5 months, and
    perhaps we will have completely removed non-Device-Tree support from
    tegra_wm8903.c by then and/or adjusted mach-types policy.

    Signed-off-by: Stephen Warren
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Stephen Warren
     
  • Signed-off-by: Sangbeom Kim
    Acked-by: Jassi Brar
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Sangbeom Kim
     
  • Signed-off-by: Joseph Pentland
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Joseph Pentland
     

23 Aug, 2011

6 commits

  • 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
     
  • Introduce a new label that includes kfree and jump to that one.

    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 != kfree(x)
    when != x = E3
    when != E3 = x
    * return ...;
    }
    ... when != x = E2
    when != I(...,x,...) S
    if (...) { ... when != x = E4
    kfree(x); ... return ...; }
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Alexander Sverdlin
    Reviewed-by: H Hartley Sweeten
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Julia Lawall
     
  • Adjust the goto to jump to the error handling code that includes kfree.

    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 != kfree(x)
    when != x = E3
    when != E3 = x
    * return ...;
    }
    ... when != x = E2
    when != I(...,x,...) S
    if (...) { ... when != x = E4
    kfree(x); ... return ...; }
    )
    //

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

    Julia Lawall
     
  • GFP_ATOMIC is not needed here, use GFP_KERNEL instead.

    Signed-off-by: Axel Lin
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     
  • 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
     

22 Aug, 2011

5 commits


19 Aug, 2011

1 commit

  • Fix "error: too few arguments to function 'ams_delta_set_bias_level'"
    build errors in ams-delta.c that were introduced after commit d4c6005 ("ASoC:
    Add context parameter to card DAPM callbacks") by adding dapm context
    to ams_delta_set_bias_level calls.

    Signed-off-by: Jarkko Nikula
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Jarkko Nikula
     

17 Aug, 2011

1 commit

  • The ASoC core tries to not enforce symmetric rates when
    two streams open simultaneously. It does so by checking
    rtd->rate being zero. This works exactly once after booting
    because it is not set to zero again when the streams close.
    Fix this by setting rtd->rate when no active stream is left.

    [This leads to lots of warnings about not enforcing the symmetry in some
    situations as there's a race in the userspace API where we know we've
    got two applications but don't know what rates they want to set.
    -- broonie ]

    Signed-off-by: Sascha Hauer
    Signed-off-by: Mark Brown

    Sascha Hauer
     

15 Aug, 2011

7 commits


14 Aug, 2011

3 commits

  • Add linux/types.h to fix this compilation error:

    In file included from arch/arm/mach-s3c2410/include/mach/gpio-fns.h:27:0,
    from arch/arm/mach-s3c2410/include/mach/gpio.h:27,
    from /home/anarsoul/work/pda-linux/linux-next/arch/arm/include/asm/gpio.h:5,
    from include/linux/gpio.h:18,
    from sound/soc/samsung/rx1950_uda1380.c:20:
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:29:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:30:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_drvstr_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:57:2: error: expected specifier-qualifier-list before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:148:47: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:156:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_getpull’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:175:24: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h: In function ‘s3c_gpio_cfgrange_nopull’:
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: ‘s3c_gpio_pull_t’ undeclared (first use in this function)
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: note: each undeclared identifier is reported only once for each function it appears in
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: expected ‘)’ before numeric constant
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: too many arguments to function ‘s3c_gpio_cfgall_range’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:174:12: note: declared here
    arch/arm/plat-samsung/include/plat/gpio-cfg.h: At top level:
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:199:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_get_drvstr’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:210:50: error: expected declaration specifiers or ‘...’ before ‘s5p_gpio_drvstr_t’

    Signed-off-by: Vasily Khoruzhick
    Acked-by: Jassi Brar
    Signed-off-by: Mark Brown

    Vasily Khoruzhick
     
  • Add linux/types.h to fix this compilation error:

    In file included from arch/arm/mach-s3c2410/include/mach/gpio-fns.h:27:0,
    from arch/arm/mach-s3c2410/include/mach/gpio.h:27,
    from /home/anarsoul/work/pda-linux/linux-next/arch/arm/include/asm/gpio.h:5,
    from include/linux/gpio.h:18,
    from sound/soc/samsung/rx1950_uda1380.c:20:
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:29:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:30:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_drvstr_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:57:2: error: expected specifier-qualifier-list before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:148:47: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:156:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_getpull’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:175:24: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h: In function ‘s3c_gpio_cfgrange_nopull’:
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: ‘s3c_gpio_pull_t’ undeclared (first use in this function)
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: note: each undeclared identifier is reported only once for each function it appears in
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: expected ‘)’ before numeric constant
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: too many arguments to function ‘s3c_gpio_cfgall_range’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:174:12: note: declared here
    arch/arm/plat-samsung/include/plat/gpio-cfg.h: At top level:
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:199:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_get_drvstr’
    arch/arm/plat-samsung/include/plat/gpio-cfg.h:210:50: error: expected declaration specifiers or ‘...’ before ‘s5p_gpio_drvstr_t’

    Signed-off-by: Vasily Khoruzhick
    Acked-by: Jassi Brar
    Signed-off-by: Mark Brown

    Vasily Khoruzhick
     
  • When the clocking registers are not overriden some of the registers are
    not writable.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood
    Cc: stable@kernel.org

    Mark Brown