Commit 004e822a authored by Dariusz Marcinkiewicz's avatar Dariusz Marcinkiewicz Committed by Thierry Reding
Browse files

drm/tegra: Use cec_notifier_conn_(un)register()



Use the new cec_notifier_conn_(un)register() functions to
(un)register the notifier for the HDMI connector, and fill in
the cec_connector_info.

Signed-off-by: default avatarDariusz Marcinkiewicz <darekm@google.com>
Tested-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Acked-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 051172e8
Loading
Loading
Loading
Loading
+21 −7
Original line number Diff line number Diff line
@@ -70,6 +70,11 @@ tegra_output_connector_detect(struct drm_connector *connector, bool force)

void tegra_output_connector_destroy(struct drm_connector *connector)
{
	struct tegra_output *output = connector_to_output(connector);

	if (output->cec)
		cec_notifier_conn_unregister(output->cec);

	drm_connector_unregister(connector);
	drm_connector_cleanup(connector);
}
@@ -163,18 +168,11 @@ int tegra_output_probe(struct tegra_output *output)
		disable_irq(output->hpd_irq);
	}

	output->cec = cec_notifier_get(output->dev);
	if (!output->cec)
		return -ENOMEM;

	return 0;
}

void tegra_output_remove(struct tegra_output *output)
{
	if (output->cec)
		cec_notifier_put(output->cec);

	if (output->hpd_gpio)
		free_irq(output->hpd_irq, output);

@@ -184,6 +182,7 @@ void tegra_output_remove(struct tegra_output *output)

int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
{
	int connector_type;
	int err;

	if (output->panel) {
@@ -199,6 +198,21 @@ int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
	if (output->hpd_gpio)
		enable_irq(output->hpd_irq);

	connector_type = output->connector.connector_type;
	/*
	 * Create a CEC notifier for HDMI connector.
	 */
	if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
	    connector_type == DRM_MODE_CONNECTOR_HDMIB) {
		struct cec_connector_info conn_info;

		cec_fill_conn_info_from_drm(&conn_info, &output->connector);
		output->cec = cec_notifier_conn_register(output->dev, NULL,
							 &conn_info);
		if (!output->cec)
			return -ENOMEM;
	}

	return 0;
}