lkml.org 
[lkml]   [2010]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 051/123] ASoC: fix ak4104 register array access
    2.6.33-stable review patch.  If anyone has any objections, please let me know.

    -----------------

    From: Daniel Mack <daniel@caiaq.de>

    commit e555317c083fda01f516d2153589e82514e20e70 upstream.

    Don't touch the variable 'reg' to construct the value for the actual SPI
    transport. This variable is again used to access the driver's register
    cache, and so random memory is overwritten.
    Compute the value in-place instead.

    Signed-off-by: Daniel Mack <daniel@caiaq.de>
    Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    sound/soc/codecs/ak4104.c | 6 ++----
    1 file changed, 2 insertions(+), 4 deletions(-)

    --- a/sound/soc/codecs/ak4104.c
    +++ b/sound/soc/codecs/ak4104.c
    @@ -90,12 +90,10 @@ static int ak4104_spi_write(struct snd_s
    if (reg >= codec->reg_cache_size)
    return -EINVAL;

    - reg &= AK4104_REG_MASK;
    - reg |= AK4104_WRITE;
    -
    /* only write to the hardware if value has changed */
    if (cache[reg] != value) {
    - u8 tmp[2] = { reg, value };
    + u8 tmp[2] = { (reg & AK4104_REG_MASK) | AK4104_WRITE, value };
    +
    if (spi_write(spi, tmp, sizeof(tmp))) {
    dev_err(&spi->dev, "SPI write failed\n");
    return -EIO;



    \
     
     \ /
      Last update: 2010-03-13 02:29    [W:0.019 / U:33.244 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site