From nobody Mon May 25 07:34:53 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DD733DD878 for ; Sat, 16 May 2026 11:53:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778932433; cv=none; b=rqMb5FAeGEOPdH9ny1G6Dk8gJAd6LgpNI6an5lwbIYtkShqChYD8NJ3qs8eauSDlffCUSx2C94PW14PrUOLJ8YI3mQnRby02AQtPRtBMudmxyW7Blh2pFgMJSA7MpxNWGuusJPY1JeMV3X3EebHjOexm/SVfXtvK8f48s4aOHGM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778932433; c=relaxed/simple; bh=T1EcXcxWq0rQvQxiX8jHAnIiOpw0u6XiHh6h8Y5al8M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=M1TpHphjWZdwzgpVmeoCZ8xXFctZsMXr9aq9ClZ7etpgJOelZWBR7jzwLqCJ0C9wn17DfRopz+Gq3NoRJ6SZ+2G6XlRBK3dhs7M52fdrN1xM2N6MBuITnqcA43mNB6uq3QhijApyHpR8EbGu0H7rEBt8nFOp3kYB/TsVK+wET6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Ie0T8854; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GGZ0fd0M; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Ie0T8854"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GGZ0fd0M" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64G3jUOi3845558 for ; Sat, 16 May 2026 11:53:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=+Nopaqt4P/VG1rvKE+IVOo VaDtQUdLtKRdO0so13yBE=; b=Ie0T8854wudsdJ4qXSusQPBiQ37uBKioqVfMPS By4n47/0lvgq7ttHXx63pjW4rPaS93xMRiX1GInCPKbxzbnYGSmX7ujiXXolr44a rG5h7RZS/dRKRu5JfnKq9muqPSZ5mFN2QH95/BY/cA7bZ227/e5YlHLcKKekWm5B UWzUTdlY6WRclKjXI/67uAb4e9wGefSjE+hrU8HcaXSvEQ+mVuCVw9mktLvYmwnu mtIldpxNwOllvYDhPzxuu6kEdffOVkj7Ky/xtkVoYWVNiSbZgAWMQvlkxYOmZlg6 XT5wkphfAVrIQSFNvHe/mFsFfCOKxgBjb3mLiD1+3ZfUicTg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e6gy50sbp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 16 May 2026 11:53:50 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-90f4bdebe77so178948485a.0 for ; Sat, 16 May 2026 04:53:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778932430; x=1779537230; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=+Nopaqt4P/VG1rvKE+IVOoVaDtQUdLtKRdO0so13yBE=; b=GGZ0fd0MCfoYN1iz6vXeVWwPc1azISgwzL3CEnYammqFfKDCCd71bY2q3lfYpxU7gS 5PUCDUHqH/fmp0of2frtb3JF3a2OY3nDfWp0QmZ3b/K7+7AMI3EMYcVaZYVS3Kb2/QkC 7OKLkIzxhPkssJf+ykI8xqqFYoZi5r0LoeQU2mIxY0PeyS8/pxWkSKlJXWC5PgvApvaE /EHt3bAS0KQVek9Owfg2Q7QM+NPL8Pi5eoK+vXhB2BMYK3cQGmExfrFu1PC/SnVCTCcc iJaHZBlP78lFE/7+J/U39P31nKLvHptu26KzJLbmkN3mq9EwjXuz0eU8CKPbZ72rw0hb kNXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778932430; x=1779537230; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+Nopaqt4P/VG1rvKE+IVOoVaDtQUdLtKRdO0so13yBE=; b=ac5WxjcgjmwDKBUpDdRjbUjzmz+n8Uc3FakdW9gZC9LMDWg6UMW6aHLWY5ShUvzkak 0TOuxdxdpsQ6WXRXlXMG+H48NxyuHhrXthHpUvU6838OdTv/3mDu6JLk5mY+BXfLbBWK KQhOuxJuMt3l0olXQTV0tkvxsAiixLlh8sNacJxRmM+tF9MMgjyTyJo/srrk/LHFdXp9 ewsvBVIhYYYZ4X+bvOdblCc7lewUFvtWBtvgnu3/QBqnbD6JDHoN2PVXpHUwRsEd/Dvo kbiGOiUPvFL2s4A1RtPLqBr128hs8XIvQ/f3Tx7BaZ1vlKpepOBmA/eqpD7n7AhEKSa8 iETw== X-Forwarded-Encrypted: i=1; AFNElJ/uoEmD+0sG9c9NwftoBy4V+89a469veJ3NX8fevUt2/m5M7Gz00DMByJb0Vf1TO747Jk63fwQcfOrs1vk=@vger.kernel.org X-Gm-Message-State: AOJu0YyvRjWyxWIW1Fjrabbreqxtb8XAcfhn3IwEgtQxCyuAJ6EJebY3 mikh2GcfIMuApCkrotYSoXwv8fn6V47FfukSaWDEHSrt/XoMNKaaAuUTO66lWiq7Nq9vLQYaT56 SOEsJojRCjXnJ0CsOdRMpIELW3zPi0atjdCzFbwchL7tIUTiqUV65Xh3WXniXJOIe+U0= X-Gm-Gg: Acq92OHjDTAAU03m2Uj7VdGRvWlegfQf0L+sBRp2FYNGqEDlxjH56AwX30heke1sGSI SFw1XK7Q8+bWyBxxfo4lFAAym6z2zTz0rzbFrxOtY2TYmGaGw0PmiFiYNpQLsj+sRqiP8lEeIeM r2l3STv/1Jpn/mH9fbMeXw7vgM3n9XhPAvKFF67hEaPLPgcrfOK2TIq5dtKTJDLHfJu40xJSRzO zo+E3NjsGgkRgP5qPE+nzVZ1Alun0pvahlcssk4S8uB81zw2+HWj1TKMNvgpNU4kOwinTYSmdCS j42lO7NDSkj9G25AggsTQzz21UgeeJADSdqKxUTkueZWbqirbaWfA+G5z739rOr6D208CAtCj7s mv8w0/5GshIk7Um2lgpMW6Q7pp6uG7Nlr2n1afvbLtwdK2oTekxO3m5bDngqzWelQjuQEbcCeCd 4Nhfh59WXA0k4w+lSuKlBwUdD8fvcj7Lo/M18= X-Received: by 2002:a05:620a:4556:b0:8e8:bedd:14b7 with SMTP id af79cd13be357-911cd75d7ebmr1186971285a.22.1778932429925; Sat, 16 May 2026 04:53:49 -0700 (PDT) X-Received: by 2002:a05:620a:4556:b0:8e8:bedd:14b7 with SMTP id af79cd13be357-911cd75d7ebmr1186968085a.22.1778932429417; Sat, 16 May 2026 04:53:49 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a9164c4b73sm1947270e87.55.2026.05.16.04.53.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 May 2026 04:53:48 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 16 May 2026 14:53:45 +0300 Subject: [PATCH v2] drm/msm/snapshot: fix dumping of the unaligned regions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260516-msm-fix-dsi-dump-2-v2-1-9e49fb2d240e@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAMhaCGoC/22NQQ6CMBBFr0Jm7ZC2QCOuvIdhUdoqNZZiB4iGc HcLxp2bSV7y5r8FyEZnCU7ZAtHOjlzoE4hDBrpT/c2iM4lBMCFZxSv05PHqXmjIoZn8gAJlqYp Wc8mMkpAeh2iTsY9emi/T1N6tHrelzegcjSG+9+rMN+8XkP8CM0eOZVGLI6tLI6r2HIjy56QeO nifpwPNuq4f3hp7Hc0AAAA= X-Change-ID: 20260515-msm-fix-dsi-dump-2-64a3bc160da6 To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Salendarsingh Gaud X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3628; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=T1EcXcxWq0rQvQxiX8jHAnIiOpw0u6XiHh6h8Y5al8M=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqCFrKTbeuaUtQ2yYqRJ15mWPB6rp3wK/V4PG05 XzVTEWRHGyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaghaygAKCRCLPIo+Aiko 1WQzCACWO6+MmByjin6N2P2AiqIRhQRQ/faI85C7RppHihUqm5HdCwZDGTmWyeY/8yJOg9Q28rX gjNmQMSNY5vnfg5vFYQdMv1t4C3UXGg76qeMGBjsneVxLm7tp4qYQEtmKaIWqaxYDVgt2orc6dS MM2dtNfkkr+dqbEW/E4jfzJcpRZdZ27Ziju6d1ohq7F+oZ9KTdtRP0Nq3lGyCImaBPCZ4wMvkCk YTQOToCLX1aIAAk/PeqY6Hvq3TsmlB62n+4ZQ+lELd+kuhLP0ehV0DaaZZcGdz61beZkWVqZnoH LSIPRlYMYLXq8lfPZ0kl8O4aXcRVpGwRnbRGJR00nXuhsa/O X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=Wusb99fv c=1 sm=1 tr=0 ts=6a085ace cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=IVn6q5FHpPisWK92jdoA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-GUID: Xz3FADan4e1WwOl9QTo_pHx2dA_4D5g1 X-Proofpoint-ORIG-GUID: Xz3FADan4e1WwOl9QTo_pHx2dA_4D5g1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE2MDExNiBTYWx0ZWRfX11TIH6wthjLq jVuswLq9qE6r4qv9b7Zq4tQSEBYIis77irtg32mMkS4Qgv1or3ZyzRIwmMR7xE2yAt8GMDcsRwJ Yde5m0uVeWLbx/QI8gukdsVMnbt5JtQV61iEJoMir5pnjhJ+Mp4/SeLJ/M9kyXOJ4JtQ6mp0zMT 3jvHIoK9iTsVEqnpHr5ho7J5x65LmY2nAYtbimc2MR8L0SwmfBiymbBpHU0wa3gI94dnsOYEHYE juRVe8SaHd/qRJ1RMk3G+ghwGFAf3fQ9chAGLEKQcfGNy0TaVRzuDyTae9ymUE0nIoQLr3P3A2b HiqWqe5Hy6YvR4ZTg42riFOlxvszfziOhj4ZV2CmY2wFtpr/nSp+sNwk3Ho+mzYFr4AzjOcrQrr otY6ixwnsyiit0T1M5f60I8V+LvCclGPjjo64fBk7zohDin9VdpcV2b3YH1YBT/1XxVVP7sE2Jd +DKjvuCLF1LGxcyedSw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-16_01,2026-05-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605160116 The snapshotting code internally aligns data segment to 16 bytes. This works fine for DPU code (where most of the regions are aligned), but fails for snapshotting of the DSI data (because DSI data region is shifted by 4 bytes). Fix the code by removing length alignment and by accurately printing last registers in the region. While reworking the code also fix the 16x memory overallocation in msm_disp_state_dump_regs(). Fixes: 98659487b845 ("drm/msm: add support to take dpu snapshot") Reported-by: Salendarsingh Gaud Signed-off-by: Dmitry Baryshkov --- Changes in v2: - Drop the debugging clause, limiting dumping to DSI control regions. - Link to v1: https://patch.msgid.link/20260516-msm-fix-dsi-dump-2-v1-1-439= 28094d25b@oss.qualcomm.com --- drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c | 24 +++++++++++++++++--= ---- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c b/drivers/gp= u/drm/msm/disp/msm_disp_snapshot_util.c index 5e151952dea8..c8a10b1232c2 100644 --- a/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c +++ b/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c @@ -9,7 +9,7 @@ =20 #include "msm_disp_snapshot.h" =20 -static void msm_disp_state_dump_regs(u32 **reg, u32 aligned_len, void __io= mem *base_addr) +static void msm_disp_state_dump_regs(u32 **reg, u32 len, void __iomem *bas= e_addr) { u32 len_padded; u32 num_rows; @@ -19,11 +19,11 @@ static void msm_disp_state_dump_regs(u32 **reg, u32 ali= gned_len, void __iomem *b void __iomem *end_addr; int i; =20 - len_padded =3D aligned_len * REG_DUMP_ALIGN; - num_rows =3D aligned_len / REG_DUMP_ALIGN; + len_padded =3D round_up(len, REG_DUMP_ALIGN); + num_rows =3D DIV_ROUND_UP(len, REG_DUMP_ALIGN); =20 addr =3D base_addr; - end_addr =3D base_addr + aligned_len; + end_addr =3D base_addr + len; =20 *reg =3D kvzalloc(len_padded, GFP_KERNEL); if (!*reg) @@ -48,8 +48,8 @@ static void msm_disp_state_dump_regs(u32 **reg, u32 align= ed_len, void __iomem *b static void msm_disp_state_print_regs(const u32 *dump_addr, u32 len, void __iomem *base_addr, struct drm_printer *p) { + void __iomem *addr, *end_addr; int i; - void __iomem *addr; u32 num_rows; =20 if (!dump_addr) { @@ -58,6 +58,7 @@ static void msm_disp_state_print_regs(const u32 *dump_add= r, u32 len, } =20 addr =3D base_addr; + end_addr =3D base_addr + len; num_rows =3D len / REG_DUMP_ALIGN; =20 for (i =3D 0; i < num_rows; i++) { @@ -67,6 +68,17 @@ static void msm_disp_state_print_regs(const u32 *dump_ad= dr, u32 len, dump_addr[i * 4 + 2], dump_addr[i * 4 + 3]); addr +=3D REG_DUMP_ALIGN; } + + if (addr !=3D end_addr) { + drm_printf(p, "0x%lx : %08x", + (unsigned long)(addr - base_addr), + dump_addr[i * 4]); + if (addr + 0x4 < end_addr) + drm_printf(p, " %08x", dump_addr[i * 4 + 1]); + if (addr + 0x8 < end_addr) + drm_printf(p, " %08x", dump_addr[i * 4 + 2]); + drm_printf(p, "\n"); + } } =20 void msm_disp_state_print(struct msm_disp_state *state, struct drm_printer= *p) @@ -185,7 +197,7 @@ void msm_disp_snapshot_add_block(struct msm_disp_state = *disp_state, u32 len, va_end(va); =20 INIT_LIST_HEAD(&new_blk->node); - new_blk->size =3D ALIGN(len, REG_DUMP_ALIGN); + new_blk->size =3D len; new_blk->base_addr =3D base_addr; =20 msm_disp_state_dump_regs(&new_blk->state, new_blk->size, base_addr); --- base-commit: 11ff30385c8ad7de9862f4f1cec424fca15a4f13 change-id: 20260515-msm-fix-dsi-dump-2-64a3bc160da6 Best regards, -- =20 With best wishes Dmitry