Loading MAINTAINERS +10 −0 Original line number Diff line number Diff line Loading @@ -4948,6 +4948,16 @@ F: Documentation/input/multi-touch-protocol.txt F: drivers/input/input-mt.c K: \b(ABS|SYN)_MT_ INTEL ASoC BDW/HSW DRIVERS M: Jie Yang <yang.jie@linux.intel.com> L: alsa-devel@alsa-project.org S: Supported F: sound/soc/intel/sst-haswell* F: sound/soc/intel/sst-dsp* F: sound/soc/intel/sst-firmware.c F: sound/soc/intel/broadwell.c F: sound/soc/intel/haswell.c INTEL C600 SERIES SAS CONTROLLER DRIVER M: Intel SCU Linux support <intel-linux-scu@intel.com> M: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Loading sound/soc/intel/Kconfig +2 −2 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ config SND_SOC_INTEL_BROADWELL_MACH config SND_SOC_INTEL_BYTCR_RT5640_MACH tristate "ASoC Audio DSP Support for MID BYT Platform" depends on X86 depends on X86 && I2C select SND_SOC_RT5640 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI Loading @@ -101,7 +101,7 @@ config SND_SOC_INTEL_BYTCR_RT5640_MACH config SND_SOC_INTEL_CHT_BSW_RT5672_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec" depends on X86_INTEL_LPSS depends on X86_INTEL_LPSS && I2C select SND_SOC_RT5670 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI Loading sound/soc/intel/bytcr_dpcm_rt5640.c +1 −1 Original line number Diff line number Diff line Loading @@ -226,4 +226,4 @@ module_platform_driver(snd_byt_mc_driver); MODULE_DESCRIPTION("ASoC Intel(R) Baytrail CR Machine driver"); MODULE_AUTHOR("Subhransu S. Prusty <subhransu.s.prusty@intel.com>"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:bytrt5640-audio"); MODULE_ALIAS("platform:bytt100_rt5640"); sound/soc/intel/sst-firmware.c +10 −5 Original line number Diff line number Diff line Loading @@ -707,6 +707,7 @@ static int block_alloc_fixed(struct sst_dsp *dsp, struct sst_block_allocator *ba struct list_head *block_list) { struct sst_mem_block *block, *tmp; struct sst_block_allocator ba_tmp = *ba; u32 end = ba->offset + ba->size, block_end; int err; Loading @@ -731,9 +732,9 @@ static int block_alloc_fixed(struct sst_dsp *dsp, struct sst_block_allocator *ba if (ba->offset >= block->offset && ba->offset < block_end) { /* align ba to block boundary */ ba->size -= block_end - ba->offset; ba->offset = block_end; err = block_alloc_contiguous(dsp, ba, block_list); ba_tmp.size -= block_end - ba->offset; ba_tmp.offset = block_end; err = block_alloc_contiguous(dsp, &ba_tmp, block_list); if (err < 0) return -ENOMEM; Loading Loading @@ -764,10 +765,14 @@ static int block_alloc_fixed(struct sst_dsp *dsp, struct sst_block_allocator *ba /* does block span more than 1 section */ if (ba->offset >= block->offset && ba->offset < block_end) { /* add block */ list_move(&block->list, &dsp->used_block_list); list_add(&block->module_list, block_list); /* align ba to block boundary */ ba->offset = block->offset; ba_tmp.size -= block_end - ba->offset; ba_tmp.offset = block_end; err = block_alloc_contiguous(dsp, ba, block_list); err = block_alloc_contiguous(dsp, &ba_tmp, block_list); if (err < 0) return -ENOMEM; Loading sound/soc/intel/sst-haswell-ipc.c +32 −2 Original line number Diff line number Diff line Loading @@ -652,11 +652,11 @@ static void hsw_notification_work(struct work_struct *work) } /* tell DSP that notification has been handled */ sst_dsp_shim_update_bits_unlocked(hsw->dsp, SST_IPCD, sst_dsp_shim_update_bits(hsw->dsp, SST_IPCD, SST_IPCD_BUSY | SST_IPCD_DONE, SST_IPCD_DONE); /* unmask busy interrupt */ sst_dsp_shim_update_bits_unlocked(hsw->dsp, SST_IMRX, SST_IMRX_BUSY, 0); sst_dsp_shim_update_bits(hsw->dsp, SST_IMRX, SST_IMRX_BUSY, 0); } static struct ipc_message *reply_find_msg(struct sst_hsw *hsw, u32 header) Loading Loading @@ -1230,6 +1230,11 @@ int sst_hsw_stream_free(struct sst_hsw *hsw, struct sst_hsw_stream *stream) struct sst_dsp *sst = hsw->dsp; unsigned long flags; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to free, ignore it.\n"); return 0; } /* dont free DSP streams that are not commited */ if (!stream->commited) goto out; Loading Loading @@ -1417,6 +1422,16 @@ int sst_hsw_stream_commit(struct sst_hsw *hsw, struct sst_hsw_stream *stream) u32 header; int ret; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to commit, ignore it.\n"); return 0; } if (stream->commited) { dev_warn(hsw->dev, "warning: stream is already committed, ignore it.\n"); return 0; } trace_ipc_request("stream alloc", stream->host_id); header = IPC_GLB_TYPE(IPC_GLB_ALLOCATE_STREAM); Loading Loading @@ -1521,6 +1536,11 @@ int sst_hsw_stream_pause(struct sst_hsw *hsw, struct sst_hsw_stream *stream, { int ret; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to pause, ignore it.\n"); return 0; } trace_ipc_request("stream pause", stream->reply.stream_hw_id); ret = sst_hsw_stream_operations(hsw, IPC_STR_PAUSE, Loading @@ -1537,6 +1557,11 @@ int sst_hsw_stream_resume(struct sst_hsw *hsw, struct sst_hsw_stream *stream, { int ret; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to resume, ignore it.\n"); return 0; } trace_ipc_request("stream resume", stream->reply.stream_hw_id); ret = sst_hsw_stream_operations(hsw, IPC_STR_RESUME, Loading @@ -1552,6 +1577,11 @@ int sst_hsw_stream_reset(struct sst_hsw *hsw, struct sst_hsw_stream *stream) { int ret, tries = 10; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to reset, ignore it.\n"); return 0; } /* dont reset streams that are not commited */ if (!stream->commited) return 0; Loading Loading
MAINTAINERS +10 −0 Original line number Diff line number Diff line Loading @@ -4948,6 +4948,16 @@ F: Documentation/input/multi-touch-protocol.txt F: drivers/input/input-mt.c K: \b(ABS|SYN)_MT_ INTEL ASoC BDW/HSW DRIVERS M: Jie Yang <yang.jie@linux.intel.com> L: alsa-devel@alsa-project.org S: Supported F: sound/soc/intel/sst-haswell* F: sound/soc/intel/sst-dsp* F: sound/soc/intel/sst-firmware.c F: sound/soc/intel/broadwell.c F: sound/soc/intel/haswell.c INTEL C600 SERIES SAS CONTROLLER DRIVER M: Intel SCU Linux support <intel-linux-scu@intel.com> M: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Loading
sound/soc/intel/Kconfig +2 −2 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ config SND_SOC_INTEL_BROADWELL_MACH config SND_SOC_INTEL_BYTCR_RT5640_MACH tristate "ASoC Audio DSP Support for MID BYT Platform" depends on X86 depends on X86 && I2C select SND_SOC_RT5640 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI Loading @@ -101,7 +101,7 @@ config SND_SOC_INTEL_BYTCR_RT5640_MACH config SND_SOC_INTEL_CHT_BSW_RT5672_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec" depends on X86_INTEL_LPSS depends on X86_INTEL_LPSS && I2C select SND_SOC_RT5670 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI Loading
sound/soc/intel/bytcr_dpcm_rt5640.c +1 −1 Original line number Diff line number Diff line Loading @@ -226,4 +226,4 @@ module_platform_driver(snd_byt_mc_driver); MODULE_DESCRIPTION("ASoC Intel(R) Baytrail CR Machine driver"); MODULE_AUTHOR("Subhransu S. Prusty <subhransu.s.prusty@intel.com>"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:bytrt5640-audio"); MODULE_ALIAS("platform:bytt100_rt5640");
sound/soc/intel/sst-firmware.c +10 −5 Original line number Diff line number Diff line Loading @@ -707,6 +707,7 @@ static int block_alloc_fixed(struct sst_dsp *dsp, struct sst_block_allocator *ba struct list_head *block_list) { struct sst_mem_block *block, *tmp; struct sst_block_allocator ba_tmp = *ba; u32 end = ba->offset + ba->size, block_end; int err; Loading @@ -731,9 +732,9 @@ static int block_alloc_fixed(struct sst_dsp *dsp, struct sst_block_allocator *ba if (ba->offset >= block->offset && ba->offset < block_end) { /* align ba to block boundary */ ba->size -= block_end - ba->offset; ba->offset = block_end; err = block_alloc_contiguous(dsp, ba, block_list); ba_tmp.size -= block_end - ba->offset; ba_tmp.offset = block_end; err = block_alloc_contiguous(dsp, &ba_tmp, block_list); if (err < 0) return -ENOMEM; Loading Loading @@ -764,10 +765,14 @@ static int block_alloc_fixed(struct sst_dsp *dsp, struct sst_block_allocator *ba /* does block span more than 1 section */ if (ba->offset >= block->offset && ba->offset < block_end) { /* add block */ list_move(&block->list, &dsp->used_block_list); list_add(&block->module_list, block_list); /* align ba to block boundary */ ba->offset = block->offset; ba_tmp.size -= block_end - ba->offset; ba_tmp.offset = block_end; err = block_alloc_contiguous(dsp, ba, block_list); err = block_alloc_contiguous(dsp, &ba_tmp, block_list); if (err < 0) return -ENOMEM; Loading
sound/soc/intel/sst-haswell-ipc.c +32 −2 Original line number Diff line number Diff line Loading @@ -652,11 +652,11 @@ static void hsw_notification_work(struct work_struct *work) } /* tell DSP that notification has been handled */ sst_dsp_shim_update_bits_unlocked(hsw->dsp, SST_IPCD, sst_dsp_shim_update_bits(hsw->dsp, SST_IPCD, SST_IPCD_BUSY | SST_IPCD_DONE, SST_IPCD_DONE); /* unmask busy interrupt */ sst_dsp_shim_update_bits_unlocked(hsw->dsp, SST_IMRX, SST_IMRX_BUSY, 0); sst_dsp_shim_update_bits(hsw->dsp, SST_IMRX, SST_IMRX_BUSY, 0); } static struct ipc_message *reply_find_msg(struct sst_hsw *hsw, u32 header) Loading Loading @@ -1230,6 +1230,11 @@ int sst_hsw_stream_free(struct sst_hsw *hsw, struct sst_hsw_stream *stream) struct sst_dsp *sst = hsw->dsp; unsigned long flags; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to free, ignore it.\n"); return 0; } /* dont free DSP streams that are not commited */ if (!stream->commited) goto out; Loading Loading @@ -1417,6 +1422,16 @@ int sst_hsw_stream_commit(struct sst_hsw *hsw, struct sst_hsw_stream *stream) u32 header; int ret; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to commit, ignore it.\n"); return 0; } if (stream->commited) { dev_warn(hsw->dev, "warning: stream is already committed, ignore it.\n"); return 0; } trace_ipc_request("stream alloc", stream->host_id); header = IPC_GLB_TYPE(IPC_GLB_ALLOCATE_STREAM); Loading Loading @@ -1521,6 +1536,11 @@ int sst_hsw_stream_pause(struct sst_hsw *hsw, struct sst_hsw_stream *stream, { int ret; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to pause, ignore it.\n"); return 0; } trace_ipc_request("stream pause", stream->reply.stream_hw_id); ret = sst_hsw_stream_operations(hsw, IPC_STR_PAUSE, Loading @@ -1537,6 +1557,11 @@ int sst_hsw_stream_resume(struct sst_hsw *hsw, struct sst_hsw_stream *stream, { int ret; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to resume, ignore it.\n"); return 0; } trace_ipc_request("stream resume", stream->reply.stream_hw_id); ret = sst_hsw_stream_operations(hsw, IPC_STR_RESUME, Loading @@ -1552,6 +1577,11 @@ int sst_hsw_stream_reset(struct sst_hsw *hsw, struct sst_hsw_stream *stream) { int ret, tries = 10; if (!stream) { dev_warn(hsw->dev, "warning: stream is NULL, no stream to reset, ignore it.\n"); return 0; } /* dont reset streams that are not commited */ if (!stream->commited) return 0; Loading