Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 622d3f4d authored by Dariusz Marcinkiewicz's avatar Dariusz Marcinkiewicz Committed by Greg Kroah-Hartman
Browse files

drm/vc4/vc4_hdmi: fill in connector info



[ Upstream commit 66c2dee4ae10a2d841c40b9dd9c7141eb23eee76 ]

Fill in the connector info, allowing userspace to associate
the CEC device with the drm connector.

Tested on a Raspberry Pi 3B.

Signed-off-by: default avatarDariusz Marcinkiewicz <darekm@google.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Tested-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Acked-by: default avatarEric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20190823112427.42394-2-hverkuil-cisco@xs4all.nl


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent d14d3ad6
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1285,6 +1285,9 @@ static const struct cec_adap_ops vc4_hdmi_cec_adap_ops = {

static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
{
#ifdef CONFIG_DRM_VC4_HDMI_CEC
	struct cec_connector_info conn_info;
#endif
	struct platform_device *pdev = to_platform_device(dev);
	struct drm_device *drm = dev_get_drvdata(master);
	struct vc4_dev *vc4 = drm->dev_private;
@@ -1403,13 +1406,15 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
#ifdef CONFIG_DRM_VC4_HDMI_CEC
	hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
					      vc4, "vc4",
					      CEC_CAP_TRANSMIT |
					      CEC_CAP_LOG_ADDRS |
					      CEC_CAP_PASSTHROUGH |
					      CEC_CAP_RC, 1);
					      CEC_CAP_DEFAULTS |
					      CEC_CAP_CONNECTOR_INFO, 1);
	ret = PTR_ERR_OR_ZERO(hdmi->cec_adap);
	if (ret < 0)
		goto err_destroy_conn;

	cec_fill_conn_info_from_drm(&conn_info, hdmi->connector);
	cec_s_conn_info(hdmi->cec_adap, &conn_info);

	HDMI_WRITE(VC4_HDMI_CPU_MASK_SET, 0xffffffff);
	value = HDMI_READ(VC4_HDMI_CEC_CNTRL_1);
	value &= ~VC4_HDMI_CEC_DIV_CLK_CNT_MASK;