Commit 0e9c67d7 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: x86: Drop superfluous state field

The state field keeps the connection state and it's basically as same
as drv_status field.  Drop this redundancy.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent d0e9b1a2
...@@ -1644,7 +1644,7 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata) ...@@ -1644,7 +1644,7 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata)
} }
/* process hot plug, called from wq with mutex locked */ /* process hot plug, called from wq with mutex locked */
static int had_process_hot_plug(struct snd_intelhad *intelhaddata) static void had_process_hot_plug(struct snd_intelhad *intelhaddata)
{ {
enum intel_had_aud_buf_type buf_id; enum intel_had_aud_buf_type buf_id;
struct snd_pcm_substream *substream; struct snd_pcm_substream *substream;
...@@ -1657,8 +1657,9 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) ...@@ -1657,8 +1657,9 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata)
if (intelhaddata->drv_status == HAD_DRV_CONNECTED) { if (intelhaddata->drv_status == HAD_DRV_CONNECTED) {
dev_dbg(intelhaddata->dev, "Device already connected\n"); dev_dbg(intelhaddata->dev, "Device already connected\n");
spin_unlock_irq(&intelhaddata->had_spinlock); spin_unlock_irq(&intelhaddata->had_spinlock);
return 0; return;
} }
buf_id = intelhaddata->curr_buf; buf_id = intelhaddata->curr_buf;
intelhaddata->buff_done = buf_id; intelhaddata->buff_done = buf_id;
intelhaddata->drv_status = HAD_DRV_CONNECTED; intelhaddata->drv_status = HAD_DRV_CONNECTED;
...@@ -1679,12 +1680,10 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) ...@@ -1679,12 +1680,10 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata)
} }
had_build_channel_allocation_map(intelhaddata); had_build_channel_allocation_map(intelhaddata);
return 0;
} }
/* process hot unplug, called from wq with mutex locked */ /* process hot unplug, called from wq with mutex locked */
static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) static void had_process_hot_unplug(struct snd_intelhad *intelhaddata)
{ {
enum intel_had_aud_buf_type buf_id; enum intel_had_aud_buf_type buf_id;
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
...@@ -1697,14 +1696,14 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) ...@@ -1697,14 +1696,14 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata)
if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) {
dev_dbg(intelhaddata->dev, "Device already disconnected\n"); dev_dbg(intelhaddata->dev, "Device already disconnected\n");
spin_unlock_irq(&intelhaddata->had_spinlock); spin_unlock_irq(&intelhaddata->had_spinlock);
return 0; return;
} else {
/* Disable Audio */
snd_intelhad_enable_audio_int(intelhaddata, false);
snd_intelhad_enable_audio(intelhaddata, false);
} }
/* Disable Audio */
snd_intelhad_enable_audio_int(intelhaddata, false);
snd_intelhad_enable_audio(intelhaddata, false);
intelhaddata->drv_status = HAD_DRV_DISCONNECTED; intelhaddata->drv_status = HAD_DRV_DISCONNECTED;
dev_dbg(intelhaddata->dev, dev_dbg(intelhaddata->dev,
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_DISCONNECTED\n", "%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_DISCONNECTED\n",
...@@ -1722,8 +1721,6 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) ...@@ -1722,8 +1721,6 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata)
spin_unlock_irq(&intelhaddata->had_spinlock); spin_unlock_irq(&intelhaddata->had_spinlock);
kfree(intelhaddata->chmap->chmap); kfree(intelhaddata->chmap->chmap);
intelhaddata->chmap->chmap = NULL; intelhaddata->chmap->chmap = NULL;
return 0;
} }
/* PCM operations structure and the calls back for the same */ /* PCM operations structure and the calls back for the same */
...@@ -1847,18 +1844,13 @@ static void had_audio_wq(struct work_struct *work) ...@@ -1847,18 +1844,13 @@ static void had_audio_wq(struct work_struct *work)
if (!pdata->hdmi_connected) { if (!pdata->hdmi_connected) {
dev_dbg(ctx->dev, "%s: Event: HAD_NOTIFY_HOT_UNPLUG\n", dev_dbg(ctx->dev, "%s: Event: HAD_NOTIFY_HOT_UNPLUG\n",
__func__); __func__);
had_process_hot_unplug(ctx);
if (ctx->state != hdmi_connector_status_connected) {
dev_dbg(ctx->dev, "%s: Already Unplugged!\n",
__func__);
} else {
ctx->state = hdmi_connector_status_disconnected;
had_process_hot_unplug(ctx);
}
} else { } else {
struct intel_hdmi_lpe_audio_eld *eld = &pdata->eld; struct intel_hdmi_lpe_audio_eld *eld = &pdata->eld;
dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n",
__func__, eld->port_id, pdata->tmds_clock_speed);
switch (eld->pipe_id) { switch (eld->pipe_id) {
case 0: case 0:
ctx->had_config_offset = AUDIO_HDMI_CONFIG_A; ctx->had_config_offset = AUDIO_HDMI_CONFIG_A;
...@@ -1877,22 +1869,15 @@ static void had_audio_wq(struct work_struct *work) ...@@ -1877,22 +1869,15 @@ static void had_audio_wq(struct work_struct *work)
memcpy(&ctx->eld, eld->eld_data, sizeof(ctx->eld)); memcpy(&ctx->eld, eld->eld_data, sizeof(ctx->eld));
had_process_hot_plug(ctx); ctx->dp_output = pdata->dp_output;
ctx->tmds_clock_speed = pdata->tmds_clock_speed;
ctx->state = hdmi_connector_status_connected; ctx->link_rate = pdata->link_rate;
dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n", had_process_hot_plug(ctx);
__func__, eld->port_id, pdata->tmds_clock_speed);
if (pdata->tmds_clock_speed) {
ctx->tmds_clock_speed = pdata->tmds_clock_speed;
ctx->dp_output = pdata->dp_output;
ctx->link_rate = pdata->link_rate;
/* Process mode change if stream is active */ /* Process mode change if stream is active */
if (ctx->stream_data.stream_type == HAD_RUNNING_STREAM) if (ctx->stream_data.stream_type == HAD_RUNNING_STREAM)
hdmi_audio_mode_change(ctx); hdmi_audio_mode_change(ctx);
}
} }
mutex_unlock(&ctx->mutex); mutex_unlock(&ctx->mutex);
} }
...@@ -1966,7 +1951,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) ...@@ -1966,7 +1951,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
ctx->irq = -1; ctx->irq = -1;
ctx->tmds_clock_speed = DIS_SAMPLE_RATE_148_5; ctx->tmds_clock_speed = DIS_SAMPLE_RATE_148_5;
INIT_WORK(&ctx->hdmi_audio_wq, had_audio_wq); INIT_WORK(&ctx->hdmi_audio_wq, had_audio_wq);
ctx->state = hdmi_connector_status_disconnected;
card->private_free = hdmi_lpe_audio_free; card->private_free = hdmi_lpe_audio_free;
......
...@@ -129,7 +129,6 @@ struct snd_intelhad { ...@@ -129,7 +129,6 @@ struct snd_intelhad {
struct device *dev; struct device *dev;
struct snd_pcm_chmap *chmap; struct snd_pcm_chmap *chmap;
int underrun_count; int underrun_count;
enum hdmi_connector_status state;
int tmds_clock_speed; int tmds_clock_speed;
int link_rate; int link_rate;
...@@ -138,7 +137,7 @@ struct snd_intelhad { ...@@ -138,7 +137,7 @@ struct snd_intelhad {
void __iomem *mmio_start; void __iomem *mmio_start;
unsigned int had_config_offset; unsigned int had_config_offset;
struct work_struct hdmi_audio_wq; struct work_struct hdmi_audio_wq;
struct mutex mutex; /* for protecting chmap, state and eld */ struct mutex mutex; /* for protecting chmap and eld */
}; };
#endif /* _INTEL_HDMI_AUDIO_ */ #endif /* _INTEL_HDMI_AUDIO_ */
...@@ -591,12 +591,6 @@ union aud_info_frame3 { ...@@ -591,12 +591,6 @@ union aud_info_frame3 {
u32 fr3_val; u32 fr3_val;
}; };
enum hdmi_connector_status {
hdmi_connector_status_connected = 1,
hdmi_connector_status_disconnected = 2,
hdmi_connector_status_unknown = 3,
};
#define HDMI_AUDIO_UNDERRUN (1UL<<31) #define HDMI_AUDIO_UNDERRUN (1UL<<31)
#define HDMI_AUDIO_BUFFER_DONE (1UL<<29) #define HDMI_AUDIO_BUFFER_DONE (1UL<<29)
......
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