Commit fa5dfe6a authored by Takashi Iwai's avatar Takashi Iwai

ALSA: x86: Drop redundant had_stream_pvt

The had_stream_pvt struct assigned to PCM runtime private data tracks
merely the stream running status, and the very same information is
carried by had_stream->stream_type.  Kill it.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 0e9c67d7
...@@ -953,7 +953,6 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -953,7 +953,6 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
{ {
struct snd_intelhad *intelhaddata; struct snd_intelhad *intelhaddata;
struct snd_pcm_runtime *runtime; struct snd_pcm_runtime *runtime;
struct had_stream_pvt *stream;
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
int retval; int retval;
...@@ -968,31 +967,16 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -968,31 +967,16 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
dev_dbg(intelhaddata->dev, "%s: HDMI cable plugged-out\n", dev_dbg(intelhaddata->dev, "%s: HDMI cable plugged-out\n",
__func__); __func__);
retval = -ENODEV; retval = -ENODEV;
goto exit_put_handle; goto error;
}
/* Check, if device already in use */
if (runtime->private_data) {
dev_dbg(intelhaddata->dev, "Device already in use\n");
retval = -EBUSY;
goto exit_put_handle;
} }
/* set the runtime hw parameter with local snd_pcm_hardware struct */ /* set the runtime hw parameter with local snd_pcm_hardware struct */
runtime->hw = snd_intel_hadstream; runtime->hw = snd_intel_hadstream;
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
if (!stream) {
retval = -ENOMEM;
goto exit_put_handle;
}
stream->stream_status = STREAM_INIT;
runtime->private_data = stream;
retval = snd_pcm_hw_constraint_integer(runtime, retval = snd_pcm_hw_constraint_integer(runtime,
SNDRV_PCM_HW_PARAM_PERIODS); SNDRV_PCM_HW_PARAM_PERIODS);
if (retval < 0) if (retval < 0)
goto exit_err; goto error;
/* Make sure, that the period size is always aligned /* Make sure, that the period size is always aligned
* 64byte boundary * 64byte boundary
...@@ -1002,15 +986,12 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -1002,15 +986,12 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
if (retval < 0) { if (retval < 0) {
dev_dbg(intelhaddata->dev, "%s:step_size=64 failed,err=%d\n", dev_dbg(intelhaddata->dev, "%s:step_size=64 failed,err=%d\n",
__func__, retval); __func__, retval);
goto exit_err; goto error;
} }
return retval; return retval;
exit_err: error:
kfree(stream);
exit_put_handle:
pm_runtime_put(intelhaddata->dev); pm_runtime_put(intelhaddata->dev);
runtime->private_data = NULL;
return retval; return retval;
} }
...@@ -1020,16 +1001,8 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -1020,16 +1001,8 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
*/ */
static void had_period_elapsed(struct snd_pcm_substream *substream) static void had_period_elapsed(struct snd_pcm_substream *substream)
{ {
struct had_stream_pvt *stream;
if (!substream || !substream->runtime) if (!substream || !substream->runtime)
return; return;
stream = substream->runtime->private_data;
if (!stream)
return;
if (stream->stream_status != STREAM_RUNNING)
return;
snd_pcm_period_elapsed(substream); snd_pcm_period_elapsed(substream);
} }
...@@ -1042,13 +1015,8 @@ static void had_period_elapsed(struct snd_pcm_substream *substream) ...@@ -1042,13 +1015,8 @@ static void had_period_elapsed(struct snd_pcm_substream *substream)
static int snd_intelhad_close(struct snd_pcm_substream *substream) static int snd_intelhad_close(struct snd_pcm_substream *substream)
{ {
struct snd_intelhad *intelhaddata; struct snd_intelhad *intelhaddata;
struct snd_pcm_runtime *runtime;
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
runtime = substream->runtime;
if (WARN_ON(!runtime->private_data))
return 0;
intelhaddata->stream_info.buffer_rendered = 0; intelhaddata->stream_info.buffer_rendered = 0;
intelhaddata->stream_info.buffer_ptr = 0; intelhaddata->stream_info.buffer_ptr = 0;
...@@ -1062,8 +1030,6 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream) ...@@ -1062,8 +1030,6 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream)
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_CONNECTED\n", "%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_CONNECTED\n",
__func__, __LINE__); __func__, __LINE__);
} }
kfree(runtime->private_data);
runtime->private_data = NULL;
pm_runtime_put(intelhaddata->dev); pm_runtime_put(intelhaddata->dev);
return 0; return 0;
} }
...@@ -1142,11 +1108,9 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -1142,11 +1108,9 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream,
{ {
int retval = 0; int retval = 0;
struct snd_intelhad *intelhaddata; struct snd_intelhad *intelhaddata;
struct had_stream_pvt *stream;
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
stream = substream->runtime->private_data;
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
switch (cmd) { switch (cmd) {
...@@ -1158,7 +1122,6 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -1158,7 +1122,6 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream,
retval = -ENODEV; retval = -ENODEV;
break; break;
} }
stream->stream_status = STREAM_RUNNING;
had_stream->stream_type = HAD_RUNNING_STREAM; had_stream->stream_type = HAD_RUNNING_STREAM;
...@@ -1182,7 +1145,6 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -1182,7 +1145,6 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream,
/* Reset buffer pointers */ /* Reset buffer pointers */
snd_intelhad_reset_audio(intelhaddata, 1); snd_intelhad_reset_audio(intelhaddata, 1);
snd_intelhad_reset_audio(intelhaddata, 0); snd_intelhad_reset_audio(intelhaddata, 0);
stream->stream_status = STREAM_DROPPED;
snd_intelhad_enable_audio_int(intelhaddata, false); snd_intelhad_enable_audio_int(intelhaddata, false);
break; break;
......
...@@ -86,12 +86,6 @@ struct ring_buf_info { ...@@ -86,12 +86,6 @@ struct ring_buf_info {
u8 is_valid; u8 is_valid;
}; };
struct had_stream_pvt {
enum had_stream_status stream_status;
int stream_ops;
ssize_t dbg_cum_bytes;
};
struct had_stream_data { struct had_stream_data {
enum had_status_stream stream_type; enum had_status_stream stream_type;
}; };
......
...@@ -223,21 +223,6 @@ union otm_hdmi_eld_t { ...@@ -223,21 +223,6 @@ union otm_hdmi_eld_t {
} __packed; } __packed;
}; };
/**
* enum had_status - Audio stream states
*
* @STREAM_INIT: Stream initialized
* @STREAM_RUNNING: Stream running
* @STREAM_PAUSED: Stream paused
* @STREAM_DROPPED: Stream dropped
*/
enum had_stream_status {
STREAM_INIT = 0,
STREAM_RUNNING = 1,
STREAM_PAUSED = 2,
STREAM_DROPPED = 3
};
/** /**
* enum had_status_stream - HAD stream states * enum had_status_stream - HAD stream states
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment