From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=148.251.105.195 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794632461; b=qMZVU2edIZysZbtvcb6xtsXgfZEa2WkVuZv4oDbN3kHjYt1WfdTCHexivK2tDdrskpOn SZFhRU4aE9kZlUGQb+hdY5r+gwgtxcxlktlBRGBZ5kgu8U5pEImqDbyUJfw1uwNqgwunH 8Ha1++SWLixTOhJBKXru75A/kSHYNEWrvYC33nlOY2gvEzjsp51t/cL/PKNA+eLLevl0W HQy+RNNcxBove7ckftN372sISoJRPletfOeHPgM9kPW7O+9kY+YOin1BnCoScnq/cPC7h 9tpQbk3Rgfh3xGBrEhZ9xEKRCgCe95oC09uwPmX/grVVWsL0L+pGirOiPrcGtF3NECA== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794632461; h=DMARC-Filter:DKIM-Signature:Received:Received:From:Date:Subject: MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id: References:In-Reply-To:To:Cc:X-Mailer:X-Developer-Signature: X-Developer-Key; bh=aq1wklvUfz6y80ena7Y5LbjdHFmcTT/kgWcd6FQG4hs=; b=p2aFK96tIknfrdC7gnVQwvFqKCQaHWCwpkzxavJIY5paQ3i8XPEznN0Sh6vZliYd3d6F q9UyRbwWXNZ7dFKwY7bEymGPBstktK5NXLBgDC2YNShkvM5KEzF1mQ23q5ZuAd3KBNgkO eGD8+DR9wuvswiMD3Vttkl2fqn2w3GLggfI4E5zYMD/N/8i/ZHxh8WJZoEYNd0k/BMGtz 5E4k1SyIQA4RgiWdNaKaQbPJs+MnONOKOs6qXO/EONZZYLrj/HL2lwU6hy274JP9hLJRo 3l19ZGGED4DQuNtInyl5br+QLg2A0PZ8l6hbf9G8zL8NdKOkdpDkgJTZyhIz2BVliyA== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=mail header.b=AXUzCspi; arc=none smtp.remote-ip=148.251.105.195 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B166F606A8AA; Sat, 14 Nov 2026 05:01:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org B166F606A8AA Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=mail header.b=AXUzCspi DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1794632456; bh=aaF9G9vRtyHxyxIaTY8fV2Bu+8vPGjYVQJ9ai3cxtRY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=AXUzCspihXgF5F/RfbTaPjagSIWOhEsqe9SIsy5Mt0EwTWrQtcpohsZzgbSESyPnF /rN44luMWZL5Z0fqCQJAxcutaniyg2lTP9HQcakHS8eQwsue/9l0p5soQ3CqXMKoLy OPdjr+hwVe/h9Qs8j9flL+XBlRrIn+SZzIJ/rdwJskdyZiTzj95j1ixuh2NH7gfTW+ A6ICpj0KF8f3j4aeFQVt9hhHaP2Xi+eGRTqPGbE8ED7O39+III+OjKcGn7IZiAS34x +RgBT/zWzGdSSilu5mhgxbKCxQABD1g7ccDF24b6i07bGWAecb+rFR59l9AG3HMIOr ag3TcakqJMUhg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id B083117E3BCE; Sat, 14 Nov 2026 06:00:56 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 1593A48003D; Sat, 14 Nov 2026 06:00:56 +0100 (CET) From: Sebastian Reichel Date: Sat, 14 Nov 2026 06:00:40 +0100 Subject: [PATCH v12 07/23] drm/bridge: synopsys: dw-dp: Fix support for short I2C reads X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261114-synopsys-dw-dp-improvements-v12-7-d42d3dc5bdd4@collabora.com> References: <20261114-synopsys-dw-dp-improvements-v12-0-d42d3dc5bdd4@collabora.com> In-Reply-To: <20261114-synopsys-dw-dp-improvements-v12-0-d42d3dc5bdd4@collabora.com> To: Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Airlie , Simona Vetter , Dmitry Baryshkov , Luca Ceresoli , Philipp Zabel Cc: Cristian Ciocaltea , Damon Ding , Dmitry Baryshkov , Alexey Charkov , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kernel@collabora.com, linux-arm-kernel@lists.infradead.org, Sebastian Reichel , Sashiko , Igor Paunovic , Andy Yan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1595; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=aaF9G9vRtyHxyxIaTY8fV2Bu+8vPGjYVQJ9ai3cxtRY=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGr36wdsrZe53j9kYc0qHSAmKExD9Cz35Jq49 2NVa6ysBl1A5IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJq9+sHAAoJENju1/PI O/qasPAP/0B0prUvCL0gg6/fUlIt4Nhwnp3juBsDCMHQ1OfzKajQgsI1y5YZcT4KrPlX5j2rtiA RMgTnl1hYiAPKsR+MqHyEuqmiIX+9gStLTHJDg+EImTc75n1SXZ2BgJagKTMlR5+1ZKthu3pnka Ew2QlL2TUSajtWw3dWwX43k8svSrF2n4P13uVsialiZZpMq55zAmDOXmgDjdi1+zs2+42i/R35u tqfd+Ot/1E97sAkYpAQ8uWhF1A+3CD8zMdtgEAiwHyGvyIX7/nAXYORgmor8qIixdzZhpgJNITY FYaFm2Z2rD539fL6qGirl97hCa+Izd/8rfqLNCWdlmtRxmB7lGREmlh63FGwsQKJ2mjmpmrA0WF FFFl8zqOHujh81CcjyZ6EIiu3/AGjQNhrC0OttyFRQx5+KbMqgsmIc9Wtsig3kkgenDI90B0KdI P6yIG7lVz/8w1nhY9ccZF4SxZN4TUJHwk5/bdYF8ObS+6AgNSZURSKl/IrZyikIFkeIYrz3rxxA F0uoMtKF+iAAFVN801cdiH2tBeQH9y9E7Z+ACgGDU4bk0vTHG0hv2Jez+nia1Cc8T8Ao5yN/lox evTbtHpd7hmbHKorXD+P/krPwVweGN2JEmCPEpftlKcRh+aTedQJ41muhZJD3CZFPD5tScU4tea wiklWFLo9F+veZc50+YMt9w== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A The transfer functions returns the amount of bytes read for DP_AUX_I2C_READ. By returning -EBUSY for short reads, the caller has less information available what is going wrong and possibly simply resends the read request. On sinks not supporting long reads, this will simply run into the same issue again. Instead it makes more sense to return the data from the short read with the length information, which allows drm_dp_i2c_do_msg() to read data in smaller chunks and succeed in the end. Due to lack of a sink, which only supports short reads, this change is effectively untested. Fixes: 86eecc3a9c2e ("drm/bridge: synopsys: Add DW DPTX Controller support library") Reported-by: Sashiko Reviewed-by: Andy Yan Tested-by: Igor Paunovic # Orange Pi 5+ Signed-off-by: Sebastian Reichel --- drivers/gpu/drm/bridge/synopsys/dw-dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c b/drivers/gpu/drm/bridge/synopsys/dw-dp.c index df0b98cbbaab..4afa57f4bce2 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c @@ -1512,7 +1512,7 @@ static ssize_t dw_dp_aux_transfer(struct drm_dp_aux *aux, if (msg->request & DP_AUX_I2C_READ) { size_t count = FIELD_GET(AUX_BYTES_READ, value) - 1; - if (count != msg->size) + if (!count || count > msg->size) return -EBUSY; ret = dw_dp_aux_read_data(dp, msg->buffer, count); -- 2.53.0