All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Ribalda <ribalda@chromium.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: HungNien Chen <hn.chen@sunplusit.com>,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	Ricardo Ribalda <ribalda@chromium.org>
Subject: [PATCH v2 2/8] media: uvc: Allow quirking by entity guid
Date: Thu, 03 Nov 2022 14:40:43 +0100	[thread overview]
Message-ID: <20220920-resend-hwtimestamp-v2-2-d8d0616bb612@chromium.org> (raw)
In-Reply-To: <20220920-resend-hwtimestamp-v2-0-d8d0616bb612@chromium.org>

When an IP is shared by multiple devices its erratas will be shared by
all of them. Instead of creating a long list of device quirks, or
waiting for the users to report errors in their hardware lets add a
routine to add quirks based on the entity guid.

Tested-by: HungNien Chen <hn.chen@sunplusit.com>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>

diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 9c05776f11d1..c63ecfd4617d 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -1493,6 +1493,28 @@ static int uvc_parse_control(struct uvc_device *dev)
 	return 0;
 }
 
+static const struct uvc_entity_quirk {
+	u8 guid[16];
+	u32 quirks;
+} uvc_entity_quirk[] = {
+};
+
+static void uvc_entity_quirks(struct uvc_device *dev)
+{
+	struct uvc_entity *entity;
+	int i;
+
+	list_for_each_entry(entity, &dev->entities, list) {
+		for (i = 0; i < ARRAY_SIZE(uvc_entity_quirk); i++) {
+			if (memcmp(entity->guid, uvc_entity_quirk[i].guid,
+				   sizeof(entity->guid)) == 0) {
+				dev->quirks |= uvc_entity_quirk[i].quirks;
+				break;
+			}
+		}
+	}
+}
+
 /* -----------------------------------------------------------------------------
  * Privacy GPIO
  */
@@ -2452,6 +2474,9 @@ static int uvc_probe(struct usb_interface *intf,
 		goto error;
 	}
 
+	/* Apply entity based quirks */
+	uvc_entity_quirks(dev);
+
 	dev_info(&dev->udev->dev, "Found UVC %u.%02x device %s (%04x:%04x)\n",
 		 dev->uvc_version >> 8, dev->uvc_version & 0xff,
 		 udev->product ? udev->product : "<unnamed>",

-- 
b4 0.11.0-dev-d93f8

  parent reply	other threads:[~2022-11-03 13:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-03 13:40 [PATCH v2 0/8] [RESEND] [PATCH 0/8] uvcvideo: Fixes for hw timestamping Ricardo Ribalda
2022-11-03 13:40 ` [PATCH v2 1/8] media: uvc: Extend documentation of uvc_video_clock_decode() Ricardo Ribalda
2022-11-03 13:40 ` Ricardo Ribalda [this message]
2022-11-03 13:40 ` [PATCH v2 3/8] media: uvc: Create UVC_QUIRK_IGNORE_EMPTY_TS quirk Ricardo Ribalda
2022-11-03 13:40 ` [PATCH v2 4/8] media: uvcvideo: Quirk for invalid dev_sof in Logi C922 Ricardo Ribalda
2022-11-03 13:40 ` [PATCH v2 5/8] media: uvcvideo: Quirk for autosuspend in Logi C910 Ricardo Ribalda
2022-11-03 13:40 ` [PATCH v2 6/8] media: uvcvideo: Allow hw clock updates with buffers not full Ricardo Ribalda
2022-11-03 13:40 ` [PATCH v2 7/8] media: uvcvideo: Refactor clock circular buffer Ricardo Ribalda
2022-11-03 13:40 ` [PATCH v2 8/8] media: uvcvideo: Fix hw timestampt handling for slow FPS Ricardo Ribalda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220920-resend-hwtimestamp-v2-2-d8d0616bb612@chromium.org \
    --to=ribalda@chromium.org \
    --cc=hn.chen@sunplusit.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.