From nobody Mon May 25 05:13:49 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 883EF342CBA for ; Mon, 18 May 2026 10:54:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779101667; cv=none; b=hYE0p2G6qpCmYYeA1DJKGgTBzyzcKfHiZC2X8tjuuDi325+91CkUlseoNsHAe0R8lrMkL/1J/AhEXh+SycJW1HQSw6Hv8toRqThqimrnUB7x5lrWCJD2meB9r85AKIIYRo2KjVL43Iuw71yd1nA2EiaLXOwvcR5uEg++dOGhGPA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779101667; c=relaxed/simple; bh=KpHz3lAQJzAohq8g44sqdTTqJWy6OEAJMENqHt74rd0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=msTR6hY1eFwBiXsyZbPREHwi7GNC5nDuWOMifrOwA/cAdKV91JSFtxtJpVbQFeVMKHijTba26AAaXROkZ9KvcLvj51eElJZ6fwKA7sw8OULsdhAWpR6+4G6SkrFpVmbASSQra0KlCJWx4USvtDC9OSy1XEW7MTWNjsW+iYekFNk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=qRbTEYbH; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qRbTEYbH" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-488a8ca4aadso20451455e9.3 for ; Mon, 18 May 2026 03:54:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779101662; x=1779706462; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Hl/m7s8+gdhaAEkK8F8CgPM1JiiK905rKoY3T49KXgs=; b=qRbTEYbHn1wgrljfopAZnwIVZuqHnp78sngfpT4zbA8DF/NXNL+VzMjexvm3WdUiCG rPPmHsq+XfDnZ2LzukcRxrTGR1PvyUjP59uLDf9JqO4fbcYMHa3H5Qg21JTaP+b++H+t tLHpYyhv9Maf+JkyzumE73VU5rfndPXmGlqHTc23vn3Iizs/koMONhtVKSra1g7DyNwa xgcOYL2n0jGD8qB48563vgjMlftxuqb0z7hLYvRp0a+gbfRFO8onCt12O6OmFlsxlksC WIDtbwjGd+yALRmXna1O4EHxzt3GKB6S8Cb5XT3rrWLKkdocrvMNvYsIKcWIFFZNYWZ6 25eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779101662; x=1779706462; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Hl/m7s8+gdhaAEkK8F8CgPM1JiiK905rKoY3T49KXgs=; b=JrPVY5R+RbsE2UzDx9iisyI0RE4/vT/qIlg4JDxtDGbT9tLQ+xJO1twpj5nuXO936W A6OkVPzdSeUxbdWCg8bmh1lqutObpjRwuj8OdEyZs2Ar6H81qMlM8t4XZBKfrFK3ZXY4 zOw7rH2esL7JJlSHmvVU5t9Dl4mfFBp6bnkjd2RMNsz2HhvRzjnnDf/plj3w5ZwGE/VE zYUJkRtQf4AZ533sTsS4hHJI3yeMfwSYszxV9IcaTEgHP/uy+j2Bowp2z1UMWs1+AVXw J9BFczjvo/XUWDDKI5cf+2wSmpq4M5quVlVz5qSqOwtzu0ZGJYUneYBaUj/iAfasaKFh 0LPA== X-Forwarded-Encrypted: i=1; AFNElJ+hLL2jh2GcqybiOBF89XfEnFhgse2XqbvSPXif3SepU72dNkNxfLWFN3dbox24ZetRYDWU6W6dmsAcqSQ=@vger.kernel.org X-Gm-Message-State: AOJu0YycHubONP5K96S0N7zgPcUWSomLWJFn4sN8ZcTdfw0lgJlWKlMR aznSrRmy1asugZZnHve7wD/Uq+85Q/ltXXz836Q0mG56gvFG2kaRX3A= X-Gm-Gg: Acq92OFhlF8yALnOplBmypumf4Au8POaG6k0IeStcuxTcQc+qYe8mNrsF9hXsV38p9h tT2eZTg6zS67rcXOfLdXaGLamSlH+A+5UH2iHCsFAXhrYn6/BM0LC1SOhT+Oc3lrNUxV1D69jR1 AGjPPXtKCqRNeyrbhjRtspmXecVouXlwpx6hGCyotN7N5kGq39XhCJaJ7l/1hKE9nDvnKOB7gNM IQFbolo008OeVB14QtPocSKH2u/5bwPIQ8QliswNpvbhOh9S/u5VVGjZva9Qr8MFak/u2UEtfiq RvPu7+wsNHmQ3u+rzM4jXCed6XQ9m+RSCKorb0Dkf1jNA+trAM1I2AMA+cvbjjbB/z2zeYeJwmo NNqjh9VVJgZXxD4jt9q6aumgDigb9ThgARCY4Q1Kp9VpcTPW6cnICHmv4DIGD9WEVYAD6f6qwT5 gSLSXrZpgIuYLCH3Tp2D8uVRhmIptzPmS/RlsCFmPW9SuQvy5ctuMzFuEl5CHBC/xcD8q/W79CD UHZ6suwqaBRYw== X-Received: by 2002:a05:600c:c0db:b0:48e:8499:4be0 with SMTP id 5b1f17b1804b1-48fe60ee481mr163456935e9.15.1779101662049; Mon, 18 May 2026 03:54:22 -0700 (PDT) Received: from localhost.localdomain ([151.57.14.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48fe5694f2csm249429345e9.4.2026.05.18.03.54.20 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 18 May 2026 03:54:21 -0700 (PDT) From: Francesco Saverio Pavone To: jonas@kwiboo.se, detlev.casanova@collabora.com, nicolas.dufresne@collabora.com, hverkuil@kernel.org, mchehab@kernel.org Cc: ezequiel@vanguardiasur.com.ar, heiko@sntech.de, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] media: rkvdec: fix PM runtime teardown ordering in remove Date: Mon, 18 May 2026 12:54:13 +0200 Message-ID: <20260518105413.42147-1-pavone.lawyer@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonas Karlman The current remove() path calls rkvdec_v4l2_cleanup() and pm_runtime_disable() before pm_runtime_dont_use_autosuspend(), and frees the empty IOMMU domain after that. With autosuspend still armed when the domain goes away, the VDPU381 can be left in a dirty state across module reload and suspend/resume cycles. On RK3588 this surfaces as a VP9 inter-prediction bug: from the second ALTREF frame onward, motion blocks decode with U=3DV=3D0 (BT.709 green), while intra and static blocks stay correct. Reordering the teardown to dont_use_autosuspend() -> iommu_domain_free() -> pm_runtime_disable() -> v4l2_cleanup() makes the symptom go away. Tested on a Radxa Rock 5B+ (RK3588, 8 GB LPDDR5) with both the libva-v4l2-request mpv pipeline and Chromium's V4L2 stateless decoder. With the fix, 300 random pixel samples on VP9 Profile 0 clips at 1080p and 1440p match a libvpx software reference exactly (worst delta 0). Without it, the same 1080p sample at frame 4, pixel (960, 270) reads HW=3D(0,112,0) vs SW=3D(204,147,116). HEVC and H.264 stateless decoding via mpv keep running on hardware with no fallback. Fixes: ff8c5622f9f7 ("media: rkvdec: Restore iommu addresses on errors") Signed-off-by: Jonas Karlman Tested-by: Francesco Saverio Pavone Signed-off-by: Francesco Saverio Pavone --- drivers/media/platform/rockchip/rkvdec/rkvdec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c b/drivers/medi= a/platform/rockchip/rkvdec/rkvdec.c index 6f5f0422d317..bb95b090a25b 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c @@ -2066,12 +2066,13 @@ static void rkvdec_remove(struct platform_device *p= dev) =20 cancel_delayed_work_sync(&rkvdec->watchdog_work); =20 - rkvdec_v4l2_cleanup(rkvdec); - pm_runtime_disable(&pdev->dev); pm_runtime_dont_use_autosuspend(&pdev->dev); =20 if (rkvdec->empty_domain) iommu_domain_free(rkvdec->empty_domain); + + pm_runtime_disable(&pdev->dev); + rkvdec_v4l2_cleanup(rkvdec); } =20 #ifdef CONFIG_PM --=20 2.45.0