1. 23 4月, 2014 2 次提交
    • L
      ASoC: jz4740: Remove Makefile entry for removed file · eebdec04
      Lars-Peter Clausen 提交于
      Commit 0406a40a ("ASoC: jz4740: Use the generic dmaengine PCM driver")
      jz4740-pcm.c file, but neglected to remove the Makefile entries.
      
      Fixes: 0406a40a ("ASoC: jz4740: Use the generic dmaengine PCM driver")
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Reported-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      eebdec04
    • W
      ASoC: Intel: Fix audio crash due to negative address offset · 95e9ee92
      Wenkai Du 提交于
      There were occasional ADSP crash during reboot testing:
      
      [   11.883364] BUG: unable to handle kernel paging request at ffffc90121700000
      [   11.883380] IP: [<ffffffffc024d8bc>] sst_module_insert_fixed_block+0x24f/0x26d [snd_soc_sst_dsp]
      [   11.883397] PGD 7800b067 PUD 0
      [   11.883405] Oops: 0002 [#1] SMP
      [   11.886418] gsmi: Log Shutdown Reason 0x03
      
      The virtual address, ffffc90121700000, was out of range. The virtual
      address is calculated by adding LPE base address with an offset:
      
      sst_memcpy32(dsp->addr.lpe + data->offset, data->data, data->size);
      
      The offset is calculated in sst_byt_parse_module, by subtraction of
      two virtual addresses dsp->addr.fw_ext and dsp->addr.lpe:
      
      block_data.offset = block->ram_offset + (dsp->addr.fw_ext - dsp->addr.lpe);
      
      These virtual addresses are assigned by kernel from ioremap:
      
      sst->addr.lpe = ioremap(pdata->lpe_base, pdata->lpe_size);
      sst->addr.fw_ext = ioremap(pdata->fw_base, pdata->fw_size);
      
      In current driver code, offset is defined as unsigned int32:
      
      struct sst_module_data {
      ...
      	u32 offset;		/* offset in FW file */
      };
      
      Most of the time kernel assigned virtual addresses with addr.fw_ext
      greater than addr.lpe. But sometimes it was the other way round.
      
      Fix the problem by declaring offset as signed int32_t.
      Signed-off-by: NWenkai Du <wenkai.du@intel.com>
      Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      95e9ee92
  2. 21 4月, 2014 1 次提交
    • J
      ASoC: dapm: Fix widget double free with auto-disable DAPM kcontrol · 2697e4fb
      Jarkko Nikula 提交于
      Commit 9e1fda4ae158 ("ASoC: dapm: Implement mixer input auto-disable")
      is trying to free the widget it allocated by snd_soc_dapm_new_control()
      call in dapm_kcontrol_data_alloc() by adding kfree(data->widget) to
      dapm_kcontrol_free().
      
      This is causing a widget double free with auto-disabled DAPM kcontrols
      in sound card unregistration because widgets are already freed before
      dapm_kcontrol_free() is called.
      
      Reason for that is all widgets are added into dapm->card->widgets list
      in snd_soc_dapm_new_control() and freed in dapm_free_widgets() during
      execution of snd_soc_dapm_free().
      
      Now snd_soc_dapm_free() calls for different DAPM contexts happens before
      snd_card_free() call from where the call chain to dapm_kcontrol_free()
      begins:
      
      soc_cleanup_card_resources()
        soc_remove_dai_links()
          soc_remove_link_dais()
            snd_soc_dapm_free(&cpu_dai->dapm)
          soc_remove_link_components()
            soc_remove_platform()
              snd_soc_dapm_free(&platform->dapm)
            soc_remove_codec()
              snd_soc_dapm_free(&codec->dapm)
        snd_soc_dapm_free(&card->dapm)
        snd_card_free()
          snd_card_do_free()
            snd_device_free_all()
              snd_device_free()
                snd_ctl_dev_free()
                  snd_ctl_remove()
                    snd_ctl_free_one()
                      dapm_kcontrol_free()
      
      This wasn't making harm with ordinary DAPM kcontrols since data->widget is NULL for
      them.
      
      Fixes: 9e1fda4ae158 (ASoC: dapm: Implement mixer input auto-disable)
      Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com>
      Acked-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      Cc: stable@vger.kernel.org
      2697e4fb
  3. 19 4月, 2014 2 次提交
  4. 18 4月, 2014 3 次提交
  5. 15 4月, 2014 2 次提交
  6. 11 4月, 2014 1 次提交
  7. 08 4月, 2014 3 次提交
  8. 07 4月, 2014 2 次提交
  9. 04 4月, 2014 2 次提交
  10. 01 4月, 2014 5 次提交
  11. 27 3月, 2014 1 次提交
  12. 26 3月, 2014 3 次提交
  13. 25 3月, 2014 5 次提交
  14. 24 3月, 2014 1 次提交
  15. 23 3月, 2014 1 次提交
  16. 22 3月, 2014 3 次提交
  17. 20 3月, 2014 3 次提交