From nobody Sun Dec 14 06:40:52 2025 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) (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 7AB911990C7 for ; Fri, 12 Dec 2025 15:42:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765554122; cv=none; b=LpjPJ+iCyqfOpYf/qhUpxs73wUoFN1dA62Thu5msNlK3+JNhtVaAYIuZMSeQ4ptO3IIl+SYTPm5d1tcIIrB+yDk7/IWgEkGm/G5fgvkI/qijszQKpMiF5fCemfWmbkqxiVU6mKwvEBnIsprMl+pULTvZQUyOke/xNWDfCNVjOMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765554122; c=relaxed/simple; bh=L3Y/NolXUSFlLrXD0WmZpK7la1QYFLW5jrLJlxqnx74=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=BvJS+xFuw7KiN2RTALQUqgnqb0w8X0w8cBiKZbzqG2Qy6l2zKPnuVgpdeAxDEZoy0g6GYRBrs3PpveJTzzeA8kdN0uLK24uEqpEAYy2Vh5Vp3elbhTn0OOKcnX8B/plo0lY9BHKBJ3VVKND4nx91ujHsEgX76yLoiABedOXSzXI= 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=KCYuu6u1; arc=none smtp.client-ip=209.85.215.169 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="KCYuu6u1" Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-bceaaed0514so73938a12.3 for ; Fri, 12 Dec 2025 07:42:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765554121; x=1766158921; 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=Zvs0Y9fjkfpuOjqGiS1GxL1BaXlJ2gCK5y9BuiQG+A8=; b=KCYuu6u17c/RYiWdnPj9VNVw+KEma/B1un315bsIKKDo1lmKA8J+doMN6gAbjGXGkc Uis/gB8hxyz+3ka9GmX9n49LJbmR/HznQLAWzqZ10uCjLpnTsXLNBRzEEKV7xGzKQGzr sRMvp8hUrNYmBjfNHRXw6zaHWMXEgQDmvevRAfi39e/s1JAEyE+A0wdGu52h2Vb0R2AN ywvwEWpq2btaGYCPWFb7FR+RIzv7koDoAg/rNOOU83LrzPnJz7cSmZ07ZY3yw+jsVX8V 3H1zvyx2SS1+mtLO3n1baRB/0LyFVHZX7M/h/gv9/xu4PAeTYdvw/FevKDzY92qnWUdQ C6Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765554121; x=1766158921; 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=Zvs0Y9fjkfpuOjqGiS1GxL1BaXlJ2gCK5y9BuiQG+A8=; b=LXSKTl4QY4WuWDnw8WU3Z7OqAbWcl8CrpRiDOE1D1HtfE7woJ9AGLG6RN8kQytn6hY 5biOTsdyRMyoxwk0uEvfiUIk5+g3fjETKlBegMtYi2ECSoOizKrM76lyQL1ZOamXmoDE BSQEcV1KcDMSMHDsQTzVBTgKmAsxUaz3ILHvL5vnGRT0cQFTvQDPcQkmDVrYqDmGrkh9 UTcqZoWdNoGwJrRxC3ESwsjx2TGCZWeUmR2/ccc71HkphI0WQrYAS4ZPfJUau8MKjaeK aIPqi+FPXBOQJgCeUZ9LDYhCNfIBrqPFABIHYm9fOtCvMJF8xj7yqRK+3kRuBZ99TU8Y joBA== X-Forwarded-Encrypted: i=1; AJvYcCVBpqDpne/DP+QsC3Qy3O6OLQShLDEf0k5kDnQkV8Q8mC5oxBaOxl/twCCgCOdeHSgFsBno26OsNB7oogk=@vger.kernel.org X-Gm-Message-State: AOJu0YwoAk767HZJk+/Mrgv2mrqbDiHJXbt12WBiTvYiwOmpazJCxp5x /d+z2F65yGvxwqtreNqAYmSO6nWoyUadiVf/GaYUfs+Nopiwz403yStz X-Gm-Gg: AY/fxX4xsj7l5mV0Oumkw3qkZ1qohwZaiXUkpvrNikXyA/gqsBm/TdAefDmimYM0u1q yxRV9JgdrWKpGi/yINioCexHWwxZ068jONbRWGucWqw3rWFIr+mBulviRrAtuu9fo6AwsrsvQ+K YpkvIUmJ5Px7bOSUwbiWbE7VjavOjxM5fT/Y89DYoyBT8kKCaPxNYy87Ab6s9kJekTgy1UZVmrW GDsy+PZlbs8CyHa8Lu0CWuC+I3O2kfY1rEBo5W6M2mO9tXassFJWWh0snbgz2GnQ6ZCqCqC9pu+ r/YKNsfNOcCH1OV8YEgMhIX2BU77l/uxfoxNj/glxo1Jhtp3iLNmPtbwqFhY/TP/n4TUSFo56Wy /o6aVHTsYSPxE3w8bXLXB1m9gyQ2MLsxqn26fKUfWXOWLFr9BMnMKKAI2NtZRthSe81RiAID3a3 BUaJHV8u1Ks1hBFcr0ItFLug== X-Google-Smtp-Source: AGHT+IGjNBsdS6Z+owU1Z6BbP/qc6a4XyvaU3uhlw6ok1WkouJ/+QBfVTxzeOJSOKmt+ehQ/bAIRmw== X-Received: by 2002:a05:6a00:234c:b0:7a2:855f:f88b with SMTP id d2e1a72fcca58-7f668dc54a6mr2134871b3a.3.1765554120540; Fri, 12 Dec 2025 07:42:00 -0800 (PST) Received: from rock-5b.. ([45.32.55.39]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7f4c237f357sm5652380b3a.6.2025.12.12.07.41.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 07:42:00 -0800 (PST) From: Jianfeng Liu To: linux-rockchip@lists.infradead.org Cc: Nicolas Dufresne , Jonas Karlman , Jianfeng Liu , Detlev Casanova , Ezequiel Garcia , Hans Verkuil , Heiko Stuebner , Mauro Carvalho Chehab , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH] media: rkvdec: set ctx->image_fmt in rkvdec_s_capture_fmt Date: Fri, 12 Dec 2025 23:41:32 +0800 Message-ID: <20251212154138.3042300-1-liujianfeng1994@gmail.com> X-Mailer: git-send-email 2.43.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" ctx->image_fmt is initialized as RKVDEC_IMG_FMT_ANY at rkvdec_s_output_fmt, and get set at rkvdec_s_ctrl when userspace sends SPS info via VIDIOC_S_EXT_CTRLS. This works fine with gstreamer because it sends SPS info to kernel driver before requesting capture queue bufs. But chromium requests capture queue bufs first and then sends SPS info to kernel, then rkvdec_s_ctrl will return -EBUSY, and the video is displayed green. Chromium calls VIDIOC_S_FMT to capture queue instead before requesting capture queue bufs, so setting ctx->image_fmt in rkvdec_s_capture_fmt will make rkvdec_s_ctrl return 0 when the first SPS info sent to driver. Signed-off-by: Jianfeng Liu Fixes: d35c64eccf3b1 ("media: rkvdec: Add get_image_fmt ops") --- drivers/media/platform/rockchip/rkvdec/rkvdec.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c b/drivers/medi= a/platform/rockchip/rkvdec/rkvdec.c index 5af9aa5ab353..e7939d604f64 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c @@ -537,6 +537,18 @@ static int rkvdec_s_capture_fmt(struct file *file, voi= d *priv, return ret; =20 ctx->decoded_fmt =3D *f; + + u32 fourcc =3D f->fmt.pix_mp.pixelformat; + + if (fourcc =3D=3D V4L2_PIX_FMT_NV12) + ctx->image_fmt =3D RKVDEC_IMG_FMT_420_8BIT; + else if (fourcc =3D=3D V4L2_PIX_FMT_NV15) + ctx->image_fmt =3D RKVDEC_IMG_FMT_420_10BIT; + else if (fourcc =3D=3D V4L2_PIX_FMT_NV16) + ctx->image_fmt =3D RKVDEC_IMG_FMT_422_8BIT; + else if (fourcc =3D=3D V4L2_PIX_FMT_NV20) + ctx->image_fmt =3D RKVDEC_IMG_FMT_422_10BIT; + return 0; } =20 --=20 2.43.0