From nobody Thu Dec 18 07:58:35 2025 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (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 3900B1FD797 for ; Wed, 18 Dec 2024 21:39:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557969; cv=none; b=lrncJ/x3Y3uasE9n83JiIo7jab8/IVUfI6RvsOozPESW/VcBgNTkY3xgANqW8M12yBQcU6jopcP6Cff4fDErImKdcqYzw/GLQESA/qEDKAKOdbr1HeSq+zD/GoL1TjtWf8AP6pikwlatsArLGue3dlIw/eu1J7AwE1nACueiD80= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557969; c=relaxed/simple; bh=qyRuVIeUYyOK0Q3PlRcwjQXuqSyYOCeaRPkUH3obUhU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OzdWH/y/A/kJE3kIFV/KvAPJmYvAQAagffPpxtaVZbUdedqDTiOJ8CESmoQRUq46Rlvw2xkuWn/RXWNMJrlxAQLZonEJR8Dv2pzzpnjaSLb3TDUYHWv31I0LITTfN6HNHTQFky21RuZUKty4TETqfbxVgsWCWI2vY9yCZZkOaHI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=oS/MOZa5; arc=none smtp.client-ip=209.85.160.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="oS/MOZa5" Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-4679fc9b5f1so450411cf.1 for ; Wed, 18 Dec 2024 13:39:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1734557967; x=1735162767; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Xf/EiHgc9x+QegkQdQE1ivkIRei7ICvkT+RDLhyzgnI=; b=oS/MOZa5afkdSu7++ElAHkZX5yAWwbJnFC7zQPogl97LjcmlMYLcdHsRR5Y39oJ3rr zzgRoFjaAYSlxEFx3zoYpe6AyCksEIC3pqtXqffoC943/cZGukA9K/3ifcQQyAgt09IV XLE5Ki+TF16YFp/YNXnC4sKTPCRdTfhnxzY4s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734557967; x=1735162767; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Xf/EiHgc9x+QegkQdQE1ivkIRei7ICvkT+RDLhyzgnI=; b=dIL+HI2fWcGL8EVmKPwusqI64TvCUpt9D9dTLBYG7MVo8gs5SOGeFmou+9CTlBVsha AVTHiCp5HebS7YhnFnRC1NdHHSJSjHFdLugXbeiCFrZdE0W8hzSchMORNH1M5qg0/Pq/ 3jG5HCH+XoOYpeY/2OqOkRQ9W2uzF+L1Apb0KdJbQcJrbEfIU/SXBqSs0e2d7+cDlhUd 6apVxGngFfW+UnTJGWnMrrZgPx1NAGpwvMdG7FPMeoRN4FGPTGEPjsxEFqb+1c6C4ck3 jFRCbFFVMLOt5QvEGKr8NfoTmowCTZhI7lkj0ix8dx/MuUv9THZqBn0INq0zafcoK99S X2og== X-Forwarded-Encrypted: i=1; AJvYcCVk1M/i9S1im2kon9O9xLW4I5oMWjKeITbl6on8lVPlBladhiT1WAIPX5MeXNcn2/msdDxEzGpjo6Ph7Fo=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9aIpZQl7rTGCMep74dZzzDcNC4ZZwzVbI9MFk2+Xr2GXEWm9z MSUPpET+6AoRJeEqfDMUw/6Bn0ux/YvyRRfdYs/jEUSsVO/Va3j7z4S9UFCgEA== X-Gm-Gg: ASbGncv5AswH3jzteNfit+eoIQzi48LHTWCV7pKanqal34r7dYX8KvYg+f7NKBHROPv NJ21J664XkiBxR8LMLYZzDw7SygdV7aIM2Ad+qgpMMhPW4ezbuEp25j/CGWMxZZ1qq2LY7X4jyE L5vg2r4fd0HyhvZJMnTuwLmcQWP8mJRwDDp9FouRDtaX3KwqloWKa8L83cbz0ZnsByo7brmYmT2 KjVZKWNNAYKTPuHhsSLfc0Un/dKqEmr71ix2BUYFmW4vHeSiWD1g77k6vpt++7Fsh2pWVVZ+Y9L APuB/y1UngRxOFeoaLNQRO9v33HA6Wo= X-Google-Smtp-Source: AGHT+IGkLS9CMqZYLYYP5mdA8pjf23N/QyaWNYPecd0D7EIeWJo2+DJRQufGdZrMAa+2pzD2K1+kHg== X-Received: by 2002:ac8:5782:0:b0:467:5ea8:83df with SMTP id d75a77b69052e-46908e03aeamr61025111cf.30.1734557967098; Wed, 18 Dec 2024 13:39:27 -0800 (PST) Received: from denia.c.googlers.com (5.236.236.35.bc.googleusercontent.com. [35.236.236.5]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-467b2c6e312sm55176651cf.8.2024.12.18.13.39.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:39:25 -0800 (PST) From: Ricardo Ribalda Date: Wed, 18 Dec 2024 21:39:08 +0000 Subject: [PATCH v2 1/4] media: uvcvideo: Propagate buf->error to userspace 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: <20241218-uvc-deprecate-v2-1-ab814139e983@chromium.org> References: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> In-Reply-To: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> To: Laurent Pinchart , Hans de Goede , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Ricardo Ribalda X-Mailer: b4 0.13.0 Now we return VB2_BUF_STATE_DONE for valid and invalid frames. Propagate the correct value, so the user can know if the frame is valid or not via struct v4l2_buffer->flags. Reported-by: Hans de Goede Closes: https://lore.kernel.org/linux-media/84b0f212-cd88-46bb-8e6f-b94ec3e= ccba6@redhat.com Fixes: 6998b6fb4b1c ("[media] uvcvideo: Use videobuf2-vmalloc") Signed-off-by: Ricardo Ribalda Reviewed-by: Hans de Goede Reviewed-by: Laurent Pinchart --- drivers/media/usb/uvc/uvc_queue.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/uvc/uvc_queue.c b/drivers/media/usb/uvc/uvc_= queue.c index 26ee85657fc8..f8464f0aae1b 100644 --- a/drivers/media/usb/uvc/uvc_queue.c +++ b/drivers/media/usb/uvc/uvc_queue.c @@ -479,7 +479,8 @@ static void uvc_queue_buffer_complete(struct kref *ref) =20 buf->state =3D buf->error ? UVC_BUF_STATE_ERROR : UVC_BUF_STATE_DONE; vb2_set_plane_payload(&buf->buf.vb2_buf, 0, buf->bytesused); - vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_DONE); + vb2_buffer_done(&buf->buf.vb2_buf, buf->error ? VB2_BUF_STATE_ERROR : + VB2_BUF_STATE_DONE); } =20 /* --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Thu Dec 18 07:58:35 2025 Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (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 F20AF1FCF74 for ; Wed, 18 Dec 2024 21:39:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557971; cv=none; b=Vfx1M3Y7eDYsZSkTERLnpkHyRm4q1mmevahy2+cU5uBojbzBuVvaA9LqckVf8WnVc8FjCyGs2zL9I0STb5olQSWtDTnA+BaxdlXpXNJ9T8+JGqadn/UzqW5SvwM+I9gZxne+wmOEd8lTsCDo2FoRwJpWI61A9xVsuG+Fof4VU9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557971; c=relaxed/simple; bh=DhBuuSW9MUIQpcqfUsKuLLo1g4KmmcRnk8ucnEiFIdI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S5SIbJN5Qaw0f6HpBSwga2XCxvg9mxSfKp16cCo6YblfKkfvwlnpW+11dA7WMGIXp8M9IUplnSZ4NPF2xIykyxCZoHUYRoWT4V2FayzRcdbiPxu5cXclUuieY8jJ2bZq7kx9L49yp1MMvEXwyNbG5/T28i3odTAKKI4Zq8s2cxo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=ZSnYYNwd; arc=none smtp.client-ip=209.85.160.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="ZSnYYNwd" Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-467a17055e6so583171cf.3 for ; Wed, 18 Dec 2024 13:39:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1734557969; x=1735162769; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=vcx11cNcczSAZshcCeyKTXI0xmNNHV+eiS3phSI5Ghw=; b=ZSnYYNwdPIr4Wmj3UL1BsGELGijOmIV5DfmbfAL2LpOdRlpVDw/f73fVXd5YzJzC6x kIBNzFdmLgMgzO0rVEho+O0vHrLbebcNiFlLl+gS/wLoBD1psCPZ8Ob26ZDxqn7BEvAu EGgNfp6hLWBUYm+PjU/bpSwSi8UQF6Pn6L5hw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734557969; x=1735162769; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vcx11cNcczSAZshcCeyKTXI0xmNNHV+eiS3phSI5Ghw=; b=pLvWIdpTe06PRzXx1tGhMg/92RJ3vXV2oo69rncXoWMFpbjwHTfTTbkOB9UgqaY/Sh mI/Yf4Ldb9B699OuqB4BkAMlbQv4jLnBDi9NdGzJce51MIu7WCGo5gy1bK0Y7yYuztyO r+KwtjuajQSCPL2/KswCU8HUuK+Og8pOUoqZLgwdj5z4ljmCU3HvyveU65xrp8WgDjYi NFAFelUUY/yUUFrpJiuVfrxnkh/y3bSrTExWE49YbmMl8CAR0hJfX9BfU2O4JROHUZBv i+261KH+OduKd141lar7rGQA1gKkEfoz8O82sDRi4zA/sUlQgos11/T+Y4UOjakrSTdH u6Pg== X-Forwarded-Encrypted: i=1; AJvYcCWBmHRtPnMYBLlCGN1FkWIIZdVbENTm0gNNzMjvgJ/lyf0M9bmFm4ixeImNypsmV+rmoWLEy15IvkuKn1Y=@vger.kernel.org X-Gm-Message-State: AOJu0YyzXFxdYjqqm5s2ytL1kZZZ+OuGYSMhUDlxCJAEKhdI3dU1AHZS s/3zqKhXHzNJOy/2vzkSr66+yNtqcw3uwuldTRN4wZtwCWbDm2xFbHGEcukPng== X-Gm-Gg: ASbGncuJlApucEgpwla2I2X8eUtINgqL6zAGhM0BPB4hnv+WehsR8hfT6gkjwl/Ltwl kb0bL0VUZisfEoUtH0JJ51fOJ+/sCkAhl4WSRcag02J2LQiOd8jH5IozvQ/MnYDIe/5oSP4piWs tE9q+a5c8C6hn5GVM59b6P3gTGC+30uPi+6ptERLpvp25iYfzhgUTbOJPWW+AQDucsXgIhUlX16 RwI124CVfllwr10d4DRbiwxX4+G+Xe3bPCicPR1Q/joCYFjjimvPRix+OCmv9WYF0/v3Kxr9tfJ xc9K17XCmC0SRUc9YpgwEEjcOVqQsn8= X-Google-Smtp-Source: AGHT+IHAFG2tbIFDyqlrvTJzXNQ7OmWJs8w6/+hb962JqnaH0dxvvp85RBnT6p4L5Azr1IBWby2OuQ== X-Received: by 2002:a05:622a:309:b0:467:54f4:737b with SMTP id d75a77b69052e-46908e1ed90mr61838381cf.25.1734557968851; Wed, 18 Dec 2024 13:39:28 -0800 (PST) Received: from denia.c.googlers.com (5.236.236.35.bc.googleusercontent.com. [35.236.236.5]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-467b2c6e312sm55176651cf.8.2024.12.18.13.39.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:39:27 -0800 (PST) From: Ricardo Ribalda Date: Wed, 18 Dec 2024 21:39:09 +0000 Subject: [PATCH v2 2/4] media: uvcvideo: Invert default value for nodrop module param 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: <20241218-uvc-deprecate-v2-2-ab814139e983@chromium.org> References: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> In-Reply-To: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> To: Laurent Pinchart , Hans de Goede , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Ricardo Ribalda X-Mailer: b4 0.13.0 The module param `nodrop` defines what to do with frames that contain an error: drop them or sending them to userspace. The default in the rest of the media subsystem is to return buffers with an error to userspace with V4L2_BUF_FLAG_ERROR set in v4l2_buffer.flags. In UVC we drop buffers with errors by default. Change the default behaviour of uvcvideo to match the rest of the drivers and maybe get rid of the module parameter in the future. Suggested-by: Laurent Pinchart Signed-off-by: Ricardo Ribalda Reviewed-by: Hans de Goede Reviewed-by: Laurent Pinchart --- drivers/media/usb/uvc/uvc_driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc= _driver.c index b3c8411dc05c..091145743872 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -32,7 +32,7 @@ =20 unsigned int uvc_clock_param =3D CLOCK_MONOTONIC; unsigned int uvc_hw_timestamps_param; -unsigned int uvc_no_drop_param; +unsigned int uvc_no_drop_param =3D 1; static unsigned int uvc_quirks_param =3D -1; unsigned int uvc_dbg_param; unsigned int uvc_timeout_param =3D UVC_CTRL_STREAMING_TIMEOUT; --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Thu Dec 18 07:58:35 2025 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) (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 400DD1FE476 for ; Wed, 18 Dec 2024 21:39:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557973; cv=none; b=UFSEMZaKqyr/pVaoE51/4JOSl1656wzAQWJVNDPYPAECSWkIlFXQkadWnvZXOzvvvgbrL9abdxddfZMfVias/wewBVJHh9uzkJ000Rxztj/IsI1n8bNcKcUbYjwlwDj/gfKarI83pdEjgCEWd6CDwtHnS1/myC8W3/u0TqMyNuA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557973; c=relaxed/simple; bh=CBYJz7xst02f+rvRo7Dg+NiYrgBua5RnvZLDBzVCnsY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Wa1+2fX2i9kD75jJug//tNEVBKTJUw2/jWMYiGc5je5rd0KXLBz+seZykAmWPsSVSbgGd9U1vNXdWSr6Sm9w4cg5fQn2Nw0UDhCxH2RdNdcBd6OYdh7+ujJo4g866yg2Qbx8zLvtrhrxg9SQyT/A3Ckd2F3iVe0YSE++0AxZq9w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=eKE19M5v; arc=none smtp.client-ip=209.85.160.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="eKE19M5v" Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-46772a0f85bso395781cf.3 for ; Wed, 18 Dec 2024 13:39:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1734557971; x=1735162771; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gFJSV2Tib3aXPFdC1dC52bGWx6Vk7zubK7d/mVN0uIk=; b=eKE19M5vqMTzEbVuvMxrnLk6OB2M3swkonkIeHObHlNtfEcCdWUOFKXE3pRZUmZBxi 5x3fyig7K1mxfUT5hsE9RHFrJK45XBgoIkJByEVTq8gwFExiCrmY2t+zaG/YkFx2S/uG QN177wtmc6FxfEz3tRoswYhegaufUsVnBINQY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734557971; x=1735162771; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gFJSV2Tib3aXPFdC1dC52bGWx6Vk7zubK7d/mVN0uIk=; b=HkmtDHU1hMubcXRk+GGeKY/9PlOB6HKIHOqRr2nqEWO7YHMkMVrBZd3V+6yBsydX3x LKAoJgrnD2YDl3l+J70pN8xwSMA6RMIoWI5R6XJ7D96TqpgCo2hf+MERyZzMZoR3zv/2 QoXKw4+cIxzw5w64ZfetRxckqTqWUdk7o2O9sSAgVLJcAWF9i4AfeIbuiBTeFxKcI5Xb TSc1X8NQrNNLwHelXfSrFMYnHBy+RHIgrO/CcXvrCD2IF+qF21KQaT4AbnZ5TNxh+3iC FrBamC5gt5NeQFQwHYzCvwtgsEZkn581zz8b//yss4sd4edKm0UG8qfgsdKL+byiOPTc OoUQ== X-Forwarded-Encrypted: i=1; AJvYcCXBfxLDfhM+tFjfxO9HEZqRoZMh2/2e2+LN25t9/lc4VMbmOD3MKERpu1jIDn067pn/dsLV9VZxZfTQ2vY=@vger.kernel.org X-Gm-Message-State: AOJu0YwnunDbUAN7fIqpPHaROHjalzqv9w3nNTzGZjR7nioYJ5/F0yce QLZvxP0hZ7n9gF293VuA9LXfGBvC7T6SMTW5ASu7ci/QlpdVyV9ClfWnlTrJrA== X-Gm-Gg: ASbGncs8d/hDvqhsWcE+vt7vJK6RLiMpDlBaynz0JuDbEDnxf4s38TdOwbGZbakj038 B4ARLZ1SQkrZscpedcNFPeQE+noZXf5Yoo0dW+7CNLZCvcS88Tlz6EaIMvG/4FfIJoPflcK+ESE BrGSljaBl/8+jnsOnu2mFFuZLrUauZojGAb0UeBFItprLi5DqC3OnNGWiRRjln6YsKwIl0pcm8K s5BFjJh/XWQ82Qmu7OXPOiUoAL4hejyjiz8WOCzEYhDkrm3eaHcbDP/Ng4IvZrc1/qaAYApjMqW twgYw3yLGZ6yj0c+p0BkxMZSsbpi3CI= X-Google-Smtp-Source: AGHT+IGrn06yZu7HqtlYKmaZmmEmMaEPVMY2NFIICkHpbTjFlQfDl6+x6KRZsyqz7MRrefukf9NQGQ== X-Received: by 2002:a05:622a:58a:b0:467:6617:2ed4 with SMTP id d75a77b69052e-46908e74d07mr76408991cf.40.1734557971105; Wed, 18 Dec 2024 13:39:31 -0800 (PST) Received: from denia.c.googlers.com (5.236.236.35.bc.googleusercontent.com. [35.236.236.5]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-467b2c6e312sm55176651cf.8.2024.12.18.13.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:39:29 -0800 (PST) From: Ricardo Ribalda Date: Wed, 18 Dec 2024 21:39:10 +0000 Subject: [PATCH v2 3/4] media: uvcvideo: Allow changing noparam on the fly 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: <20241218-uvc-deprecate-v2-3-ab814139e983@chromium.org> References: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> In-Reply-To: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> To: Laurent Pinchart , Hans de Goede , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Ricardo Ribalda X-Mailer: b4 0.13.0 Right now the parameter value is read during video_registration and cannot be changed afterwards, despite its permissions 0644, that makes the user believe that the value can be written. The parameter only affects the beviour of uvc_queue_buffer_complete(), with only one check per buffer. We can read the value directly from uvc_queue_buffer_complete() and therefore allowing changing it with sysfs on the fly. Signed-off-by: Ricardo Ribalda Reviewed-by: Hans de Goede Reviewed-by: Laurent Pinchart --- drivers/media/usb/uvc/uvc_driver.c | 2 +- drivers/media/usb/uvc/uvc_queue.c | 6 ++---- drivers/media/usb/uvc/uvcvideo.h | 4 +--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc= _driver.c index 091145743872..10812a841587 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -1995,7 +1995,7 @@ int uvc_register_video_device(struct uvc_device *dev, int ret; =20 /* Initialize the video buffers queue. */ - ret =3D uvc_queue_init(queue, type, !uvc_no_drop_param); + ret =3D uvc_queue_init(queue, type); if (ret) return ret; =20 diff --git a/drivers/media/usb/uvc/uvc_queue.c b/drivers/media/usb/uvc/uvc_= queue.c index f8464f0aae1b..2ee142621042 100644 --- a/drivers/media/usb/uvc/uvc_queue.c +++ b/drivers/media/usb/uvc/uvc_queue.c @@ -208,8 +208,7 @@ static const struct vb2_ops uvc_meta_queue_qops =3D { .stop_streaming =3D uvc_stop_streaming, }; =20 -int uvc_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type, - int drop_corrupted) +int uvc_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type) { int ret; =20 @@ -239,7 +238,6 @@ int uvc_queue_init(struct uvc_video_queue *queue, enum = v4l2_buf_type type, mutex_init(&queue->mutex); spin_lock_init(&queue->irqlock); INIT_LIST_HEAD(&queue->irqqueue); - queue->flags =3D drop_corrupted ? UVC_QUEUE_DROP_CORRUPTED : 0; =20 return 0; } @@ -472,7 +470,7 @@ static void uvc_queue_buffer_complete(struct kref *ref) struct vb2_buffer *vb =3D &buf->buf.vb2_buf; struct uvc_video_queue *queue =3D vb2_get_drv_priv(vb->vb2_queue); =20 - if ((queue->flags & UVC_QUEUE_DROP_CORRUPTED) && buf->error) { + if (buf->error && !uvc_no_drop_param) { uvc_queue_buffer_requeue(queue, buf); return; } diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvi= deo.h index 07f9921d83f2..ebbd8afcf136 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h @@ -316,7 +316,6 @@ struct uvc_buffer { }; =20 #define UVC_QUEUE_DISCONNECTED (1 << 0) -#define UVC_QUEUE_DROP_CORRUPTED (1 << 1) =20 struct uvc_video_queue { struct vb2_queue queue; @@ -674,8 +673,7 @@ extern struct uvc_driver uvc_driver; struct uvc_entity *uvc_entity_by_id(struct uvc_device *dev, int id); =20 /* Video buffers queue management. */ -int uvc_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type, - int drop_corrupted); +int uvc_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type); void uvc_queue_release(struct uvc_video_queue *queue); int uvc_request_buffers(struct uvc_video_queue *queue, struct v4l2_requestbuffers *rb); --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Thu Dec 18 07:58:35 2025 Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) (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 A61731FECC3 for ; Wed, 18 Dec 2024 21:39:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557975; cv=none; b=p9l+pbrj9oXiIen2sWKxuKC/Podes/zGgKVXzBTqbGXdKNW3wAfftuhZn3vjAfBXfCO06k2Sh4M8oCw5NygZQ9bMDUU7DEXvmL0ejxksEpAN85kuf98Y87AI5roTG/RD2d4n7SRINT+laNN/WsRbe7tIO/Rlv8CjYj3WrCd/UUY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557975; c=relaxed/simple; bh=pXhSac2AzuqQbkJM9ihbaOkti5PzZszZwkRhNKmkfJA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fkBSIy+kcmcHTwHYH3X6Gwku7LLAKH06yyNEPDz/TEmhZfxyj4HYP4H3pTg/KSpkHYSQxLxxMV/orZOL6YONF45vpwEMQS8yxuXm2SCRxZg6gTJ3khgJWD1dwnNFAtL+yhNQLg0MbTPSeKHC9LBwvcA3GC/5p1KTePIrsZstPGE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=cvya7/Xl; arc=none smtp.client-ip=209.85.160.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="cvya7/Xl" Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-46741855f9bso521201cf.2 for ; Wed, 18 Dec 2024 13:39:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1734557972; x=1735162772; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wfZU82nxRgI9tSG07OHwYJOWywb24ZmTcs3vC8hLPzc=; b=cvya7/XldWw0nIYQfxM6UFMIl2tNFOAFlSPDFBSqRJiEtjEh8W0cTHfqsOvbJZsXAz KZ6eZFnOha2TOOQgQ2GApZxE7IKqgCBt7DLLChE9fnLCUHK2gNWrANIFQ8bnjatk1E4F IUPcAtFNu6DTw1EBUGLG5E259Yu/9WZOYuu6U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734557972; x=1735162772; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wfZU82nxRgI9tSG07OHwYJOWywb24ZmTcs3vC8hLPzc=; b=LlFby5wlmX26UP4n+cr71YA4uXlTeuOUR5d/8qpgrBTPC+svj4yA0l3c6Ra+mKZ3pq tFgB9Da2UVyLlMeCRbeIlDotfhDWh2UEdo3lY30+vWPq/YSDWVVl/5AAO/Z4EVwBdYdK kvt4I1IxWhT6gVSYArRIjMHLItV8RZnzCmfoRFFLMTPPFBDnlIiCCfATCjs93ayR4heW d9W9SN+4Mx971BAZixMTYdw3KGbIjv/bsnKmXqeJ6ym/BJ84Jc6sJlZVgg2R1CAISu/S XH6IL2Zb0j/ofusW1M5quH5s2ITiOEKN2plHweKu3sZ2A0oELiH5HzrKDRKyuTuWIq0F tzeg== X-Forwarded-Encrypted: i=1; AJvYcCUZKZ8dBeM+SfjkJT5Q/yJzkfAyt0ZYmUcYT21S/m6cyD6RwVTELfKLxWbyCxzyib811wKnb6nMx3mOR/w=@vger.kernel.org X-Gm-Message-State: AOJu0YxIHnWwx7ZZVLeMVxPqhOP7RI7d8HH/zXkpuaksEJVzqYTuZ0Nb eRpYu/X8diEm9i5b3IEMuPGCF2RaC2TDqQeX2SMfeMMtjgc5aIpUg5ISrUNC/Q== X-Gm-Gg: ASbGncsdrFAlN0bjTx8Vf2cctN8lGYvJvl+mNb5M+HdfK0nzHEPwoD7rp+3S91GuBpa SGBuAAt0aqTeQ1FWyqezOIKcaUVmKN/osO6mMhfkf8NzZYzM3cTDXpXXGBiXbquZGijDqIy5Z9e lZiF8LdLBYygxarfswuJRGQvnQHTZnbZFgaYwarr5J1Z0FnhOR4WamYwlrASrzN1MCdOJJBsMwO UPhaPJ9/Y4V6vb0iHWiOwwKwSsApTAyrn4Se3TqCEVBnR13NB0VRmJpl0Mb3neIF6fifGrtWl8n etc9cKPOFDpav7AP7lCXzIMIBGI7BXs= X-Google-Smtp-Source: AGHT+IH5B8CT5caGaubN47m+0nYzaaz42CsMyo9uKk36qPmU+8yT3pOqMjCCVmoaCdVWIT3yoeoM3A== X-Received: by 2002:a05:622a:18a7:b0:467:681a:69f4 with SMTP id d75a77b69052e-46908e7fe14mr84435261cf.39.1734557972590; Wed, 18 Dec 2024 13:39:32 -0800 (PST) Received: from denia.c.googlers.com (5.236.236.35.bc.googleusercontent.com. [35.236.236.5]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-467b2c6e312sm55176651cf.8.2024.12.18.13.39.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:39:31 -0800 (PST) From: Ricardo Ribalda Date: Wed, 18 Dec 2024 21:39:11 +0000 Subject: [PATCH v2 4/4] media: uvcvideo: Announce the user our deprecation intentions 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: <20241218-uvc-deprecate-v2-4-ab814139e983@chromium.org> References: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> In-Reply-To: <20241218-uvc-deprecate-v2-0-ab814139e983@chromium.org> To: Laurent Pinchart , Hans de Goede , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Ricardo Ribalda X-Mailer: b4 0.13.0 If the user sets the nodrop parameter, print a deprecation warning once. Hopefully they will come to the mailing list if it is an ABI change. Now that we have a callback, take this chance to parse the parameter as a boolean. We still say to userspace that it is a uint to avoid ABI changes. Signed-off-by: Ricardo Ribalda Reviewed-by: Hans de Goede Reviewed-by: Laurent Pinchart --- drivers/media/usb/uvc/uvc_driver.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc= _driver.c index 10812a841587..d8e8675dd2cd 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -2424,8 +2424,25 @@ module_param_call(clock, uvc_clock_param_set, uvc_cl= ock_param_get, MODULE_PARM_DESC(clock, "Video buffers timestamp clock"); module_param_named(hwtimestamps, uvc_hw_timestamps_param, uint, 0644); MODULE_PARM_DESC(hwtimestamps, "Use hardware timestamps"); -module_param_named(nodrop, uvc_no_drop_param, uint, 0644); + +static int param_set_nodrop(const char *val, const struct kernel_param *kp) +{ + pr_warn_once("uvcvideo: " + DEPRECATED + "nodrop parameter will be eventually removed.\n"); + return param_set_bool(val, kp); +} + +static const struct kernel_param_ops param_ops_nodrop =3D { + .set =3D param_set_nodrop, + .get =3D param_get_uint, +}; + +param_check_uint(nodrop, &uvc_no_drop_param); +module_param_cb(nodrop, ¶m_ops_nodrop, &uvc_no_drop_param, 0644); +__MODULE_PARM_TYPE(nodrop, "uint"); MODULE_PARM_DESC(nodrop, "Don't drop incomplete frames"); + module_param_named(quirks, uvc_quirks_param, uint, 0644); MODULE_PARM_DESC(quirks, "Forced device quirks"); module_param_named(trace, uvc_dbg_param, uint, 0644); --=20 2.47.1.613.gc27f4b7a9f-goog