Commit 265fa2e1 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Remove hdmi_connected from LPE audio pdata



We can determine that the pipe was shut down from pipe<0, so there's
no point in duplicating that information as 'hdmi_connected'.

v2: Use pipe<0 instead of port<0 as we'll want to do per-port
    PCM devices later
    Initialize pipe to -1 to inidicate inactive initial state

Cc: Takashi Iwai <tiwai@suse.de>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170427160231.13337-7-ville.syrjala@linux.intel.com


Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
parent c98ec5ba
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ lpe_audio_platdev_create(struct drm_i915_private *dev_priv)
	pinfo.size_data = sizeof(*pdata);
	pinfo.dma_mask = DMA_BIT_MASK(32);

	pdata->pipe = -1;
	spin_lock_init(&pdata->lpe_audio_slock);

	platdev = platform_device_register_full(&pinfo);
@@ -332,12 +333,12 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,

	audio_enable = I915_READ(VLV_AUD_PORT_EN_DBG(port));

	pdata->eld.port_id = port;

	if (eld != NULL) {
		memcpy(pdata->eld.eld_data, eld,
			HDMI_MAX_ELD_BYTES);
		pdata->eld.port_id = port;
		pdata->eld.pipe_id = pipe;
		pdata->hdmi_connected = true;
		pdata->pipe = pipe;
		pdata->ls_clock = ls_clock;
		pdata->dp_output = dp_output;

@@ -348,7 +349,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,
	} else {
		memset(pdata->eld.eld_data, 0,
			HDMI_MAX_ELD_BYTES);
		pdata->hdmi_connected = false;
		pdata->pipe = -1;
		pdata->ls_clock = 0;
		pdata->dp_output = false;

+1 −2
Original line number Diff line number Diff line
@@ -33,13 +33,12 @@ struct platform_device;

struct intel_hdmi_lpe_audio_eld {
	int port_id;
	int pipe_id;
	unsigned char eld_data[HDMI_MAX_ELD_BYTES];
};

struct intel_hdmi_lpe_audio_pdata {
	int pipe;
	int ls_clock;
	bool hdmi_connected;
	bool dp_output;
	struct intel_hdmi_lpe_audio_eld eld;
	void (*notify_audio_lpe)(struct platform_device *pdev);
+4 −4
Original line number Diff line number Diff line
@@ -1559,7 +1559,7 @@ static void had_audio_wq(struct work_struct *work)

	pm_runtime_get_sync(ctx->dev);
	mutex_lock(&ctx->mutex);
	if (!pdata->hdmi_connected) {
	if (pdata->pipe < 0) {
		dev_dbg(ctx->dev, "%s: Event: HAD_NOTIFY_HOT_UNPLUG\n",
			__func__);
		memset(ctx->eld, 0, sizeof(ctx->eld)); /* clear the old ELD */
@@ -1570,7 +1570,7 @@ static void had_audio_wq(struct work_struct *work)
		dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n",
			__func__, eld->port_id, pdata->ls_clock);

		switch (eld->pipe_id) {
		switch (pdata->pipe) {
		case 0:
			ctx->had_config_offset = AUDIO_HDMI_CONFIG_A;
			break;
@@ -1582,7 +1582,7 @@ static void had_audio_wq(struct work_struct *work)
			break;
		default:
			dev_dbg(ctx->dev, "Invalid pipe %d\n",
				eld->pipe_id);
				pdata->pipe);
			break;
		}