Received: by 2002:ab2:1149:0:b0:1f3:1f8c:d0c6 with SMTP id z9csp2855688lqz; Wed, 3 Apr 2024 10:22:04 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWaAuAUv+JzIwdOk/YdspOPn0tgsi4AVUkbUyJI6qHh0Ol7iVaCh2L8MJp1a5poHTT3lCnAqHOj0NCzuHIzcmIY6a0CK5EgI3voZ1jrZw== X-Google-Smtp-Source: AGHT+IEopLYVWfpj0z20vqAxwhHFsAbJhLvRNrQ2XGHEIhxf3cHyRDXR2ezoVqGIKUiy7dG2ZYev X-Received: by 2002:a17:906:bd1:b0:a51:827d:c99b with SMTP id y17-20020a1709060bd100b00a51827dc99bmr167432ejg.14.1712164924143; Wed, 03 Apr 2024 10:22:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712164924; cv=pass; d=google.com; s=arc-20160816; b=SlN31HxdmkiKcL4biAZ4hbB7l+Uu19CBB26CoSmSy/E3zHMdSpMcnrPZV8e7IVA/g+ GmsVrg0C2ttU/bAhRTlfiE21FE/V4ZKZPgljDtKxiZj7GPFuuAcaNrr9x+vzBKe3n60d C2uUswTaIfIFrnP0TXFWbFUQrOv2EDN2GMqqfCbS2DKZqxuyB2cNixdtgS6SuDW6LGC7 c1UZQrbCZoOTbxNJiw8XaCevNp4y7nIQMeehF4gmBvZW8dIuKSIYeFdh5Wgj7MKx6BU8 agJfXCI6QxgvqAOhMsCEwpPEOA/TMLkF5AqyCYpYlOji8u8b9oGgyVFLSW4TxAGvHyY3 o4aA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=24Mr0DSYAFdAaKswHONWh4gSdB/r6pcyRplFOb4N24o=; fh=pTOwnHfXX24czgpPrPvBMhqEj/ZbvVujqb7Rzb6AwUs=; b=fxZtZe3SYPj7GnHFcmRLMRZ1wjaiXZdydrQi3aHdTqBS7akdwtUteeUF2JklODIJUe r5jO0IdAFcuWGsxYEVOmyyxFgbPH+K4B1w55G9rAlWixcIICAcO7L1hgfZyI4NSvbcxB XXhr6WvxbS1B3M7mOLXQFA49peFnT+r/qN7cYO5dpqnumHKgERSY1x6gB+NQnptfh8I6 O3eBfr8/GP5ys9+KRGgfK7FN358x33+lzw1MP7tyG/0bGvG/Kxm/ZqPKjaZUDJanDp0v uOEyvCgmGinz+GdJlWEM+o/iqrfhWwQYAJWow9W9SBcbc2StRqS/SsmyacupXXl8R4qB FDyQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=FJLQwpmp; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-130283-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-130283-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id p6-20020a1709060e8600b00a4e8fd83163si1580553ejf.2.2024.04.03.10.22.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Apr 2024 10:22:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-130283-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=FJLQwpmp; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-130283-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-130283-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id CD1561F2B23D for ; Wed, 3 Apr 2024 17:22:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 503E1156961; Wed, 3 Apr 2024 17:17:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FJLQwpmp" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 6578F15687D; Wed, 3 Apr 2024 17:17:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712164633; cv=none; b=ncllqyiG+99+6gB06N7FhsY8vwCyj9N71V5/n+R1XVYGE76j7HP2vumAgsYsoCVDuOHM/o8JLizvwG872WdH/Gsuko2dwT5ftO3ass3OfMQQNIMuS6S7xu9T+jZ+CIUikWX6pc4qvUX/DQeG+3icA++FZBzrTave/CzZrk722t0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712164633; c=relaxed/simple; bh=H7GnAJyR/w/vFwtUJetaJZsFTHxXNWQ303r7nG7XEq4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UShuEP2/crxOh1zpmaeJ4VmG5ks2Q66FthFfQxjkjP4RwKivMBwFB/666C6B+tkNvv9/3yN6ImeD9wPg6MNl3TKu1AhtZTSYTtrV04iaqhw+KLkKQ/r8LQhN+UKQQ3P6KGYkNwlkPhglDHggQoWkac1eNcv9Rk4+9nF18ssDGVc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FJLQwpmp; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26651C433C7; Wed, 3 Apr 2024 17:17:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712164633; bh=H7GnAJyR/w/vFwtUJetaJZsFTHxXNWQ303r7nG7XEq4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FJLQwpmpouhPDQthTD5RbJ0GL87498E26Z82M7P9OBGNXmtjOzz9UlnLDCCoUAnA6 SnXE4sem4/wJyhM/9xJG3SOUW/9oDWxgj2mvGn3neFihUybZA5BfrFj5yNIgUilNwg hygzuW4Zts8Xgy49kCsjO90lZH2ZtaHNn41Wq0RCu3PnrA8yGwas76/M6mw2Y4Afo2 D5baLYFrrTc0LICK7hT5816qF4g3PfH+56sr1EXOb/9avON+7hG2O8DfPKcdTEp6qQ mhRs6wwTGQ0WSCd0LF2NPeAcPjjmUd0+ixY7vjLhIsbjH0AIMaqZ/uc2ykIhaR8Fyy V6LBHsNqlIyRw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Michael Grzeschik , Greg Kroah-Hartman , Sasha Levin , laurent.pinchart@ideasonboard.com, dan.scally@ideasonboard.com, linux-usb@vger.kernel.org Subject: [PATCH AUTOSEL 6.8 09/28] usb: gadget: uvc: mark incomplete frames with UVC_STREAM_ERR Date: Wed, 3 Apr 2024 13:16:11 -0400 Message-ID: <20240403171656.335224-9-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240403171656.335224-1-sashal@kernel.org> References: <20240403171656.335224-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.8.3 Content-Transfer-Encoding: 8bit From: Michael Grzeschik [ Upstream commit 2a3b7af120477d0571b815ccb8600cafd5ebf02f ] If an frame was transmitted incomplete to the host, we set the UVC_STREAM_ERR bit in the header for the last request that is going to be queued. This way the host will know that it should drop the frame instead of trying to display the corrupted content. Signed-off-by: Michael Grzeschik Link: https://lore.kernel.org/r/20240214-uvc-error-tag-v1-2-37659a3877fe@pengutronix.de Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/usb/gadget/function/uvc_video.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c index dbdd9033c1268..53e4cd81ea446 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -35,6 +35,9 @@ uvc_video_encode_header(struct uvc_video *video, struct uvc_buffer *buf, data[1] = UVC_STREAM_EOH | video->fid; + if (video->queue.flags & UVC_QUEUE_DROP_INCOMPLETE) + data[1] |= UVC_STREAM_ERR; + if (video->queue.buf_used == 0 && ts.tv_sec) { /* dwClockFrequency is 48 MHz */ u32 pts = ((u64)ts.tv_sec * USEC_PER_SEC + ts.tv_nsec / NSEC_PER_USEC) * 48; -- 2.43.0