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

Commit de86ae0b authored by Srikanthreddy Ponogoti's avatar Srikanthreddy Ponogoti Committed by Gerrit - the friendly Code Review server
Browse files

drm/dp: fix DPCD arbitration with CEC



Handle CEC_IRQs efficiently so as to resolve
arbitration issues between normal DPCD and CEC registers.

Change-Id: I853124ceb08532558f5059b710873eba7d7f8034
Signed-off-by: default avatarsrikanthreddy ponogoti <quic_sponogot@quicinc.com>
parent 9ee09db4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -796,7 +797,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev)
		return -ENODEV;
	}

	if (dp->usbpd->hpd_high && dp->usbpd->hpd_irq)
	if (dp->usbpd->hpd_irq && dp->usbpd->hpd_high && !dp->power_on)
		drm_dp_cec_irq(dp->aux->drm_aux);

	if (dp->usbpd->hpd_irq && dp->usbpd->hpd_high &&
+3 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2018,2020-2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -792,6 +793,8 @@ static int dp_link_parse_request(struct dp_link_private *link)

	pr_debug("device service irq vector = 0x%x\n", data);

	drm_dp_cec_irq(link->aux->drm_aux);

	if (!(data & DP_AUTOMATED_TEST_REQUEST)) {
		pr_debug("no test requested\n");
		return 0;