Loading sound/x86/intel_hdmi_audio.c +20 −36 Original line number Diff line number Diff line Loading @@ -1644,7 +1644,7 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata) } /* 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; struct snd_pcm_substream *substream; Loading @@ -1657,8 +1657,9 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) if (intelhaddata->drv_status == HAD_DRV_CONNECTED) { dev_dbg(intelhaddata->dev, "Device already connected\n"); spin_unlock_irq(&intelhaddata->had_spinlock); return 0; return; } buf_id = intelhaddata->curr_buf; intelhaddata->buff_done = buf_id; intelhaddata->drv_status = HAD_DRV_CONNECTED; Loading @@ -1679,12 +1680,10 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) } had_build_channel_allocation_map(intelhaddata); return 0; } /* 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; struct had_stream_data *had_stream; Loading @@ -1697,13 +1696,13 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { dev_dbg(intelhaddata->dev, "Device already disconnected\n"); 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); } intelhaddata->drv_status = HAD_DRV_DISCONNECTED; dev_dbg(intelhaddata->dev, Loading @@ -1722,8 +1721,6 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) spin_unlock_irq(&intelhaddata->had_spinlock); kfree(intelhaddata->chmap->chmap); intelhaddata->chmap->chmap = NULL; return 0; } /* PCM operations structure and the calls back for the same */ Loading Loading @@ -1847,18 +1844,13 @@ static void had_audio_wq(struct work_struct *work) if (!pdata->hdmi_connected) { dev_dbg(ctx->dev, "%s: Event: HAD_NOTIFY_HOT_UNPLUG\n", __func__); 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 { 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) { case 0: ctx->had_config_offset = AUDIO_HDMI_CONFIG_A; Loading @@ -1877,23 +1869,16 @@ static void had_audio_wq(struct work_struct *work) memcpy(&ctx->eld, eld->eld_data, sizeof(ctx->eld)); had_process_hot_plug(ctx); ctx->state = hdmi_connector_status_connected; dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n", __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->tmds_clock_speed = pdata->tmds_clock_speed; ctx->link_rate = pdata->link_rate; had_process_hot_plug(ctx); /* Process mode change if stream is active */ if (ctx->stream_data.stream_type == HAD_RUNNING_STREAM) hdmi_audio_mode_change(ctx); } } mutex_unlock(&ctx->mutex); } Loading Loading @@ -1966,7 +1951,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) ctx->irq = -1; ctx->tmds_clock_speed = DIS_SAMPLE_RATE_148_5; INIT_WORK(&ctx->hdmi_audio_wq, had_audio_wq); ctx->state = hdmi_connector_status_disconnected; card->private_free = hdmi_lpe_audio_free; Loading sound/x86/intel_hdmi_audio.h +1 −2 Original line number Diff line number Diff line Loading @@ -129,7 +129,6 @@ struct snd_intelhad { struct device *dev; struct snd_pcm_chmap *chmap; int underrun_count; enum hdmi_connector_status state; int tmds_clock_speed; int link_rate; Loading @@ -138,7 +137,7 @@ struct snd_intelhad { void __iomem *mmio_start; unsigned int had_config_offset; 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_ */ sound/x86/intel_hdmi_lpe_audio.h +0 −6 Original line number Diff line number Diff line Loading @@ -591,12 +591,6 @@ union aud_info_frame3 { 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_BUFFER_DONE (1UL<<29) Loading Loading
sound/x86/intel_hdmi_audio.c +20 −36 Original line number Diff line number Diff line Loading @@ -1644,7 +1644,7 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata) } /* 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; struct snd_pcm_substream *substream; Loading @@ -1657,8 +1657,9 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) if (intelhaddata->drv_status == HAD_DRV_CONNECTED) { dev_dbg(intelhaddata->dev, "Device already connected\n"); spin_unlock_irq(&intelhaddata->had_spinlock); return 0; return; } buf_id = intelhaddata->curr_buf; intelhaddata->buff_done = buf_id; intelhaddata->drv_status = HAD_DRV_CONNECTED; Loading @@ -1679,12 +1680,10 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) } had_build_channel_allocation_map(intelhaddata); return 0; } /* 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; struct had_stream_data *had_stream; Loading @@ -1697,13 +1696,13 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { dev_dbg(intelhaddata->dev, "Device already disconnected\n"); 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); } intelhaddata->drv_status = HAD_DRV_DISCONNECTED; dev_dbg(intelhaddata->dev, Loading @@ -1722,8 +1721,6 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) spin_unlock_irq(&intelhaddata->had_spinlock); kfree(intelhaddata->chmap->chmap); intelhaddata->chmap->chmap = NULL; return 0; } /* PCM operations structure and the calls back for the same */ Loading Loading @@ -1847,18 +1844,13 @@ static void had_audio_wq(struct work_struct *work) if (!pdata->hdmi_connected) { dev_dbg(ctx->dev, "%s: Event: HAD_NOTIFY_HOT_UNPLUG\n", __func__); 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 { 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) { case 0: ctx->had_config_offset = AUDIO_HDMI_CONFIG_A; Loading @@ -1877,23 +1869,16 @@ static void had_audio_wq(struct work_struct *work) memcpy(&ctx->eld, eld->eld_data, sizeof(ctx->eld)); had_process_hot_plug(ctx); ctx->state = hdmi_connector_status_connected; dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n", __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->tmds_clock_speed = pdata->tmds_clock_speed; ctx->link_rate = pdata->link_rate; had_process_hot_plug(ctx); /* Process mode change if stream is active */ if (ctx->stream_data.stream_type == HAD_RUNNING_STREAM) hdmi_audio_mode_change(ctx); } } mutex_unlock(&ctx->mutex); } Loading Loading @@ -1966,7 +1951,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) ctx->irq = -1; ctx->tmds_clock_speed = DIS_SAMPLE_RATE_148_5; INIT_WORK(&ctx->hdmi_audio_wq, had_audio_wq); ctx->state = hdmi_connector_status_disconnected; card->private_free = hdmi_lpe_audio_free; Loading
sound/x86/intel_hdmi_audio.h +1 −2 Original line number Diff line number Diff line Loading @@ -129,7 +129,6 @@ struct snd_intelhad { struct device *dev; struct snd_pcm_chmap *chmap; int underrun_count; enum hdmi_connector_status state; int tmds_clock_speed; int link_rate; Loading @@ -138,7 +137,7 @@ struct snd_intelhad { void __iomem *mmio_start; unsigned int had_config_offset; 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_ */
sound/x86/intel_hdmi_lpe_audio.h +0 −6 Original line number Diff line number Diff line Loading @@ -591,12 +591,6 @@ union aud_info_frame3 { 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_BUFFER_DONE (1UL<<29) Loading