Message ID | 20190612172347.22338-2-pierre-louis.bossart@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 7623ae793c28cc0928c5d1292542dbb92fc2e9e2 |
Headers | show |
Series | ASoC: SOF: Intel: HDaudio fixes and improvements | expand |
On Wed, 12 Jun 2019 12:23:33 -0500 Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> wrote: > From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> > > Add a snd_sof_dev member to sof_intel_hda_stream. This will be > used to access the snd_sof_dev during link hw_params callback. > > Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> > Signed-off-by: Pierre-Louis Bossart > <pierre-louis.bossart@linux.intel.com> --- > sound/soc/sof/intel/hda-stream.c | 4 ++++ > sound/soc/sof/intel/hda.h | 1 + > 2 files changed, 5 insertions(+) > > diff --git a/sound/soc/sof/intel/hda-stream.c > b/sound/soc/sof/intel/hda-stream.c index c92006f89499..1cd94e7631a8 > 100644 --- a/sound/soc/sof/intel/hda-stream.c > +++ b/sound/soc/sof/intel/hda-stream.c > @@ -564,6 +564,8 @@ int hda_dsp_stream_init(struct snd_sof_dev *sdev) > if (!hda_stream) > return -ENOMEM; > > + hda_stream->sdev = sdev; > + > stream = &hda_stream->hda_stream; > > stream->pphc_addr = sdev->bar[HDA_DSP_PP_BAR] + > @@ -617,6 +619,8 @@ int hda_dsp_stream_init(struct snd_sof_dev *sdev) > if (!hda_stream) > return -ENOMEM; > > + hda_stream->sdev = sdev; > + > stream = &hda_stream->hda_stream; > Just one thing, you have two rather big for loops here, one for capture and other for playback, they are almost identical apart for ~2 lines. Maybe share this code and only put the differences into ifs? > /* we always have DSP support */ > diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h > index 6c7dee2627d0..502b0a3c2e3c 100644 > --- a/sound/soc/sof/intel/hda.h > +++ b/sound/soc/sof/intel/hda.h > @@ -409,6 +409,7 @@ static inline struct hda_bus *sof_to_hbus(struct > snd_sof_dev *s) } > > struct sof_intel_hda_stream { > + struct snd_sof_dev *sdev; > struct hdac_ext_stream hda_stream; > struct sof_intel_stream stream; > int hw_params_upon_resume; /* set up hw_params upon resume */
diff --git a/sound/soc/sof/intel/hda-stream.c b/sound/soc/sof/intel/hda-stream.c index c92006f89499..1cd94e7631a8 100644 --- a/sound/soc/sof/intel/hda-stream.c +++ b/sound/soc/sof/intel/hda-stream.c @@ -564,6 +564,8 @@ int hda_dsp_stream_init(struct snd_sof_dev *sdev) if (!hda_stream) return -ENOMEM; + hda_stream->sdev = sdev; + stream = &hda_stream->hda_stream; stream->pphc_addr = sdev->bar[HDA_DSP_PP_BAR] + @@ -617,6 +619,8 @@ int hda_dsp_stream_init(struct snd_sof_dev *sdev) if (!hda_stream) return -ENOMEM; + hda_stream->sdev = sdev; + stream = &hda_stream->hda_stream; /* we always have DSP support */ diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h index 6c7dee2627d0..502b0a3c2e3c 100644 --- a/sound/soc/sof/intel/hda.h +++ b/sound/soc/sof/intel/hda.h @@ -409,6 +409,7 @@ static inline struct hda_bus *sof_to_hbus(struct snd_sof_dev *s) } struct sof_intel_hda_stream { + struct snd_sof_dev *sdev; struct hdac_ext_stream hda_stream; struct sof_intel_stream stream; int hw_params_upon_resume; /* set up hw_params upon resume */