1. 01 Jun, 2014 2 commits
  2. 26 May, 2014 1 commit
  3. 19 May, 2014 1 commit
  4. 16 May, 2014 3 commits
  5. 15 May, 2014 1 commit
  6. 14 May, 2014 2 commits
  7. 13 May, 2014 3 commits
  8. 12 May, 2014 7 commits
  9. 09 May, 2014 1 commit
  10. 08 May, 2014 8 commits
  11. 07 May, 2014 1 commit
  12. 05 May, 2014 1 commit
  13. 02 May, 2014 6 commits
  14. 24 Apr, 2014 1 commit
  15. 23 Apr, 2014 1 commit
  16. 22 Apr, 2014 1 commit
    • Wenkai Du's avatar
      ASoC: Intel: Fix audio crash due to negative address offset · 95e9ee92
      Wenkai Du authored
      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: default avatarWenkai Du <wenkai.du@intel.com>
      Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      95e9ee92