Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp1570758rdb; Sat, 23 Dec 2023 12:01:44 -0800 (PST) X-Google-Smtp-Source: AGHT+IFVtk7MtogEJb3N0ZgAoX4SOrANdOrTz2qLIHZcHIJ2R7rbnmEbHndWZ1lYl46MAKMSXWS5 X-Received: by 2002:a05:6e02:2144:b0:35f:c27c:b476 with SMTP id d4-20020a056e02214400b0035fc27cb476mr5180958ilv.72.1703361704463; Sat, 23 Dec 2023 12:01:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703361704; cv=none; d=google.com; s=arc-20160816; b=JJrhfNC4ETLk9I47SjijUIjT+AJNSvi//PqV9KPqX1K+PTZ8Tfnv0GlqJaE+SqRWvJ 7sKeNzervJIIlY8Vu0sMxwvq1NgNnW2LslQK1oKUWCrXfoz6YbQzafoL8ud0gwH+nsQq t1brCzXzevTZUvs+mJFeqKDvN0GhI+3O8QxTWSivmUMavtc+JP49CDzjPSca78sV/Gf8 /74RCRDwC0VvF32kfq4TVEhjumVTJK/FBp4bVLhFYFfxCHWs5x1gDJ4fQituW1DzHKzu l2P7/5tH7tjLYmboqF1gi7XotQrtOxl1tt7BLUZ49qQt0aWYLFmThd+tJ/N5b/gwq7eR 4y2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date; bh=ixy6wHQ/B2jw4yXvkS2f4hE2v76/Hmdw3wN85d6Hpm0=; fh=Yt2EorEwSOTXchaBWur3O19WtLRQx4acuhNo7TOAnkE=; b=kVUhfMR3nuNYgBeut94JkmxTkS3Dbjq2vVbaxAGvITq3MDzw35aQAMHCnb7MHD/t0j V4oArfsx55gy0NydPtSbHqUdgT4JOZKt8h/iL0YwYFzoeoj6h8viz/Kys8t+WEkUvZXk omdBMEhqHrE7IYkqBMIMXZZkPkCqJUO+0L6LBhG2Yi6ipVqBqQMeqyW9uIN7Z4UrOZv1 SZnecn39OYvmYyhkkPqP3CCFymiTKsq1GYh3CwqMWqs+tODSsSZR00jpZKVVNY/oindJ 00NSp4VnD1T2BNr90LTz51K4hxe2HVFiWHAguEwalxqCe3V3SgaY46Qxqn5hxRMTqth1 TG9g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-10576-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-10576-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=harvard.edu Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id k6-20020a170902c40600b001cc33933e45si5343404plk.42.2023.12.23.12.01.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Dec 2023 12:01:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-10576-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-10576-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-10576-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=harvard.edu 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 sy.mirrors.kernel.org (Postfix) with ESMTPS id B67A2B22137 for ; Sat, 23 Dec 2023 20:01:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 575A9208C4; Sat, 23 Dec 2023 20:01:31 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5]) by smtp.subspace.kernel.org (Postfix) with SMTP id E658920316 for ; Sat, 23 Dec 2023 20:01:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=rowland.harvard.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=netrider.rowland.org Received: (qmail 63711 invoked by uid 1000); 23 Dec 2023 15:01:22 -0500 Date: Sat, 23 Dec 2023 15:01:22 -0500 From: Alan Stern To: Ricardo Ribalda Cc: Greg Kroah-Hartman , Laurent Pinchart , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v2] usb: core: Add quirk for Logitech Rallybar Message-ID: <82bf432c-2a78-4b9c-88ab-ef4f0888e9aa@rowland.harvard.edu> References: <20231222-rallybar-v2-1-5849d62a9514@chromium.org> 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=us-ascii Content-Disposition: inline In-Reply-To: <20231222-rallybar-v2-1-5849d62a9514@chromium.org> On Fri, Dec 22, 2023 at 10:55:49PM +0000, Ricardo Ribalda wrote: > Logitech Rallybar devices, despite behaving as UVC camera, they have a > different power management system than the rest of the other Logitech > cameras. > > USB_QUIRK_RESET_RESUME causes undesired USB disconnects, that make the > device unusable. > > These are the only two devices that have this behavior, and we do not > have the list of devices that require USB_QUIRK_RESET_RESUME, so lets > create a new lit for them that un-apply the USB_QUIRK_RESET_RESUME > quirk. > > Fixes: e387ef5c47dd ("usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams") > Cc: stable@vger.kernel.org > Signed-off-by: Ricardo Ribalda > --- Would it make more sense to do this inside the uvc driver instead of creating a new single-purpose list in the core? Alan Stern > Tested with a Rallybar Mini with an Acer Chromebook Spin 513 > --- > Changes in v2: > - Add Fixes tag > - Add UVC maintainer as Cc > - Link to v1: https://lore.kernel.org/r/20231222-rallybar-v1-1-82b2a4d3106f@chromium.org > --- > drivers/usb/core/quirks.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c > index 15e9bd180a1d..8fa8de50e7f0 100644 > --- a/drivers/usb/core/quirks.c > +++ b/drivers/usb/core/quirks.c > @@ -553,6 +553,14 @@ static const struct usb_device_id usb_interface_quirk_list[] = { > { } /* terminating entry must be last */ > }; > > +static const struct usb_device_id usb_interface_unsupported_quirk_list[] = { > + /* Logitech Rallybar VC systems*/ > + { USB_DEVICE(0x046d, 0x089b), .driver_info = USB_QUIRK_RESET_RESUME }, > + { USB_DEVICE(0x046d, 0x08d3), .driver_info = USB_QUIRK_RESET_RESUME }, > + > + { } /* terminating entry must be last */ > +}; > + > static const struct usb_device_id usb_amd_resume_quirk_list[] = { > /* Lenovo Mouse with Pixart controller */ > { USB_DEVICE(0x17ef, 0x602e), .driver_info = USB_QUIRK_RESET_RESUME }, > @@ -718,6 +726,8 @@ void usb_detect_interface_quirks(struct usb_device *udev) > u32 quirks; > > quirks = usb_detect_static_quirks(udev, usb_interface_quirk_list); > + quirks &= ~usb_detect_static_quirks(udev, > + usb_interface_unsupported_quirk_list); > if (quirks == 0) > return; > > > --- > base-commit: c0f65a7c112b3cfa691cead54bcf24d6cc2182b5 > change-id: 20231222-rallybar-19ce0c64d5e6 > > Best regards, > -- > Ricardo Ribalda >